
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void lang_process(void)

{
  undefined4 *puVar1;
  void *pvVar2;
  byte bVar3;
  bfd_sym_chain *pbVar4;
  asneeded_minfo *paVar5;
  bfd *pbVar6;
  lang_output_section_phdr_list *plVar7;
  lang_phdr *plVar8;
  byte *pbVar9;
  bfd *pbVar10;
  bfd_link_hash_entry *pbVar11;
  lang_output_section_statement_struct *plVar12;
  lang_statement_union **pplVar13;
  lang_statement_union **pplVar14;
  undefined4 *puVar15;
  require_defined_symbol *prVar16;
  undefined *puVar17;
  lang_statement_union **pplVar18;
  lang_statement_union **pplVar19;
  lang_input_statement_type *plVar20;
  undefined1 uVar21;
  char cVar22;
  int iVar23;
  char *pcVar24;
  size_t sVar25;
  bfd_boolean bVar26;
  int iVar27;
  char *pcVar28;
  bfd_elf_version_expr *pbVar29;
  bfd_elf_version_tree *version;
  bfd_target *pbVar30;
  char *fmt;
  undefined4 uVar31;
  lang_statement_union *plVar32;
  lang_output_section_statement_struct *after;
  lang_statement_union_type **pplVar33;
  bfd_section *pbVar34;
  lang_output_section_statement_type *plVar35;
  bfd_vma bVar36;
  bfd_link_hash_entry **ppbVar37;
  int iVar38;
  int *__ptr;
  uint uVar39;
  byte *pbVar40;
  etree_type *peVar41;
  byte bVar42;
  bfd_target *pbVar43;
  bfd_boolean *extraout_ECX;
  bfd_boolean *has_relro_section;
  bfd_boolean *extraout_ECX_00;
  asection *paVar44;
  lang_statement_list_type *plVar45;
  uint uVar46;
  lang_statement_union *plVar47;
  lang_output_section_statement_struct *plVar48;
  asection *paVar49;
  uint uVar50;
  bfd_elf_version_expr *orig;
  lang_statement_union *plVar51;
  bfd_section *pbVar52;
  lang_output_section_phdr_list *plVar53;
  asection *paVar54;
  lang_statement_union *plVar55;
  lang_output_section_phdr_list *plVar56;
  bfd_vma bVar57;
  lang_statement_union *plVar58;
  bfd_link_hash_entry **ppbVar59;
  int *piVar60;
  undefined4 uVar61;
  memory_region_struct *pmVar62;
  lang_statement_union *plVar63;
  byte *pbVar64;
  bfd *pbVar65;
  bool bVar66;
  bool bVar67;
  byte bVar68;
  lang_statement_union *local_50;
  void *local_4c;
  undefined4 *local_48;
  uint local_44;
  bfd *local_40;
  uint power;
  bfd_vma bStack_14;
  
  bVar68 = 0;
  bStack_14 = 0x27e19;
  if (link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0) {
    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);
  }
  current_target = default_target;
  lang_for_each_statement_worker(ldlang_open_output,statement_list.head);
  init_opb();
  ldemul_create_output_section_statements();
  for (pbVar4 = entry_symbol.next; pbVar4 != (bfd_sym_chain *)0x0; pbVar4 = pbVar4->next) {
    insert_undefined(pbVar4->name);
  }
  iVar23 = bfd_section_already_linked_table_init();
  if (iVar23 == 0) {
    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    einfo(pcVar24);
  }
  lang_statement_iteration = lang_statement_iteration + 1;
  current_target = default_target;
  open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);
  pplVar19 = input_file_chain.tail;
  plVar55 = input_file_chain.head;
  pplVar18 = file_chain.tail;
  plVar47 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    plVar51 = stat_ptr->head;
    pplVar13 = stat_ptr->tail;
    iVar23 = plugin_call_all_symbols_read();
    if (iVar23 != 0) {
      pcVar24 = plugin_error_plugin();
      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      einfo(pcVar28,pcVar24);
    }
    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);
    plVar45 = stat_ptr;
    if (stat_ptr->head != plVar51) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar14 = plVar45->tail;
    plVar51 = *pplVar13;
    plVar45->tail = pplVar13;
    *pplVar13 = (lang_statement_union *)0x0;
    if (file_chain.head != plVar47) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar13 = file_chain.tail;
    plVar47 = *pplVar18;
    file_chain.tail = pplVar18;
    *pplVar18 = (lang_statement_union *)0x0;
    if (input_file_chain.head != plVar55) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar18 = input_file_chain.tail;
    plVar55 = *pplVar19;
    input_file_chain.tail = pplVar19;
    *pplVar19 = (lang_statement_union *)0x0;
    plVar58 = file_chain.head;
    plVar63 = input_file_chain.head;
    if (plVar51 != (lang_statement_union *)0x0) {
      for (; plugin_insert = (lang_input_statement_type *)plVar63,
          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)
      {
        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_00029491;
          break;
        }
        if (((plVar58->reloc_statement).section != (asection *)0x0) &&
           (((plVar58->reloc_statement).section)->target_index == 0)) {
          plugin_insert = (lang_input_statement_type *)plVar58;
        }
        plVar63 = (lang_statement_union *)plugin_insert;
      }
      plVar58 = (lang_statement_union *)plugin_insert;
      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {
        info_assert("../../ld/ldlang.c",0x1c32);
        plVar58 = (lang_statement_union *)plugin_insert;
      }
LAB_00029491:
      plugin_insert = &plVar58->input_statement;
      plVar20 = plugin_insert;
      plVar45 = stat_ptr;
      *pplVar14 = (plugin_insert->header).next;
      (plVar20->header).next = plVar51;
      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {
        plVar45->tail = pplVar14;
      }
      *pplVar18 = plVar20->next_real_file;
      plVar20->next_real_file = plVar55;
      pplVar19 = file_chain.tail;
      if (input_file_chain.tail == &plVar20->next_real_file) {
        input_file_chain.tail = pplVar18;
      }
      if (plVar20->filename == (char *)0x0) {
        *pplVar13 = file_chain.head;
        file_chain.head = plVar47;
        if ((lang_statement_list_type *)pplVar19 != &file_chain) {
          pplVar13 = file_chain.tail;
        }
      }
      else {
        *pplVar13 = plVar20->next;
        plVar20->next = plVar47;
        if (pplVar19 != &plVar20->next) {
          pplVar13 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar13;
      pplVar18 = file_chain.tail;
      plVar47 = file_chain.head;
      lang_statement_iteration = lang_statement_iteration + 1;
      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);
      if (file_chain.head != plVar47) {
        info_assert("../../ld/ldlang.c",0x1baf);
      }
      plVar47 = *pplVar18;
      file_chain.tail = pplVar18;
      *pplVar18 = (lang_statement_union *)0x0;
      while (plVar47 != (lang_statement_union *)0x0) {
        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;
        pbVar65 = (plVar47->input_statement).the_bfd;
        if (pbVar6 != (bfd *)0x0) {
          pbVar65 = pbVar6;
        }
        plVar55 = file_chain.head;
        if (input_file_chain.head != (lang_statement_union *)0x0) {
          plVar58 = (lang_statement_union *)0x0;
          local_50 = (lang_statement_union *)0x0;
          plVar51 = input_file_chain.head;
          do {
            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {
              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&
                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {
                plVar58 = plVar51;
              }
              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;
              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;
            }
            bVar57 = (plVar51->data_statement).output_offset;
            if (bVar57 != 0) {
              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);
              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);
              goto LAB_000295f1;
            }
            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;
            local_50 = plVar58;
          } while (plVar51 != (lang_statement_union *)0x0);
LAB_000295b0:
          if (local_50 != (lang_statement_union *)0x0) {
            plVar55 = local_50;
          }
        }
        plVar45 = &(plVar55->wild_statement).children;
        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;
            plVar55 = (plVar55->wild_statement).children.head) {
          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&
             (((plVar55->reloc_statement).section)->target_index == 0)) {
            plVar55 = plVar45->head;
            break;
          }
          plVar45 = &(plVar55->wild_statement).children;
        }
LAB_000295f1:
        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;
        if (pbVar6 == (bfd *)0x0) {
          plVar45->head = plVar47;
          plVar51 = (plVar47->wild_statement).children.head;
          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;
          plVar47 = plVar51;
        }
        else {
          bVar57 = (plVar47->data_statement).output_offset;
          if (bVar57 != 0) {
            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);
            while (pbVar6 == pbVar65) {
              local_50 = (lang_statement_union *)(bVar57 + 0x18);
              bVar57 = *(bfd_vma *)(bVar57 + 0x18);
              if (bVar57 == 0) break;
              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);
            }
          }
          plVar45->head = plVar47;
          plVar47 = *(lang_statement_union **)local_50;
          *(lang_statement_union **)local_50 = plVar55;
          if (pbVar6->usrdata != (void *)0x0) {
            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =
                 (lang_data_statement_type *)((int)local_50 + -0x18);
          }
        }
      }
    }
  }
  if (link_info.gc_sym_list != (bfd_sym_chain *)0x0) {
    info_assert("../../ld/ldlang.c",0x1c67);
  }
  link_info.gc_sym_list = &entry_symbol;
  if (entry_symbol.name == (char *)0x0) {
    link_info.gc_sym_list = entry_symbol.next;
    if (entry_symbol_default != (char *)0x0) {
      lang_add_gc_name(entry_symbol_default);
    }
  }
  if (link_info.init_function != (char *)0x0) {
    lang_add_gc_name(link_info.init_function);
  }
  if (link_info.fini_function != (char *)0x0) {
    lang_add_gc_name(link_info.fini_function);
  }
  ldemul_after_open();
  if ((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)) {
    pcVar24 = (char *)dcgettext(0,
                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"
                                ,5);
    minfo(pcVar24);
    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {
      minfo("%s",paVar5->soname);
      sVar25 = strlen(paVar5->soname);
      if (0x1c < sVar25) {
        print_nl();
        sVar25 = 0;
      }
      do {
        print_space();
        sVar25 = sVar25 + 1;
      } while (sVar25 != 0x1e);
      if (paVar5->ref != (bfd *)0x0) {
        minfo("%pB ",paVar5->ref);
      }
      minfo("(%pT)\n",paVar5->name);
    }
  }
  bfd_section_already_linked_table_free();
  plVar47 = file_chain.head;
joined_r0x0002800a:
  if (plVar47 != (lang_statement_union *)0x0) {
    do {
      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        pbVar6 = (plVar47->input_statement).the_bfd;
        iVar23 = bfd_arch_get_compatible
                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);
        pbVar65 = link_info.output_bfd;
        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
          if (iVar23 != 0) {
            pbVar30 = pbVar6->xvec;
            pbVar43 = (link_info.output_bfd)->xvec;
            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))
            goto LAB_000282ef;
            goto LAB_00028063;
          }
          if ((pbVar6->field_0x28 & 0x20) != 0) {
            pbVar30 = pbVar6->xvec;
            pbVar43 = (link_info.output_bfd)->xvec;
LAB_000282ef:
            pcVar24 = pbVar43->name;
            pcVar28 = pbVar30->name;
            fmt = (char *)dcgettext(0,
                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                                    ,5);
            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);
            goto joined_r0x0002832b;
          }
        }
        else {
joined_r0x0002832b:
          if (iVar23 != 0) {
LAB_00028063:
            if (pbVar6->section_count == 0) goto LAB_000280c0;
            uVar61 = 0;
            if (command_line.warn_mismatch == 0) {
              uVar61 = bfd_set_error_handler(ignore_bfd_errors);
            }
            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)
            ;
            if (bVar26 == 0) {
              if (command_line.warn_mismatch != 0) {
                pcVar24 = (char *)dcgettext(0,
                                            "%X%P: failed to merge target specific data of file %pB\n"
                                            ,5);
                einfo(pcVar24,pbVar6);
                goto LAB_00028ea4;
              }
            }
            else {
LAB_00028ea4:
              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;
            }
            bfd_set_error_handler(uVar61);
            goto LAB_000280c0;
          }
        }
        if (command_line.warn_mismatch == 0) goto LAB_000280c0;
        uVar61 = bfd_printable_name(link_info.output_bfd);
        uVar31 = bfd_printable_name(pbVar6);
        pcVar24 = (char *)dcgettext(0,
                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                                    ,5);
        einfo(pcVar24,uVar31,pbVar6,uVar61);
        plVar47 = (plVar47->wild_statement).children.head;
      }
      else {
LAB_000280c0:
        plVar47 = (plVar47->wild_statement).children.head;
      }
      if (plVar47 == (lang_statement_union *)0x0) break;
    } while( true );
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (bfd_elf_version_expr *)0x0;
    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;
        plVar47 = (plVar47->wild_statement).children.head) {
      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),
            iVar23 != 0) {
        iVar38 = *(int *)(iVar23 + 0x24);
        pcVar24 = (char *)xmalloc(iVar38);
        iVar27 = bfd_get_section_contents
                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);
        if (iVar27 == 0) {
          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          einfo(pcVar28,iVar23);
        }
        pcVar28 = pcVar24 + iVar38;
        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {
          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);
          sVar25 = strlen(pcVar24);
        }
        plVar47 = (plVar47->wild_statement).children.head;
        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;
        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;
      }
    }
LAB_000281aa:
    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);
    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);
    (version->globals).list = orig;
    (version->locals).list = pbVar29;
    version->match = lang_vers_match;
    version->name_indx = 0xffffffff;
    lang_register_vers_node
              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);
  }
  ldctor_build_sets();
  puVar17 = PTR__sch_istable_00090fa8;
  if (config.build_constructors != 0) {
    local_40 = link_info.input_bfds;
    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;
    if (link_info.input_bfds != (bfd *)0x0) {
      do {
        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {
          while( true ) {
            pbVar9 = (byte *)pbVar34->name;
            bVar42 = *pbVar9;
            if (bVar42 == 0) break;
            bVar3 = puVar17[(uint)bVar42 * 2];
            pbVar40 = pbVar9;
            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {
              pbVar40 = pbVar40 + 1;
              bVar42 = *pbVar40;
              if (bVar42 == 0) goto LAB_000299d0;
              bVar3 = puVar17[(uint)bVar42 * 2];
            }
            pbVar34 = pbVar34->next;
            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;
          }
LAB_000299d0:
          sVar25 = strlen((char *)pbVar9);
          pcVar24 = (char *)xmalloc(sVar25 + 10);
          *pcVar24 = cVar22;
          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);
          lang_define_start_stop(pcVar24,pbVar34);
          pcVar24[1] = cVar22;
          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);
          lang_define_start_stop(pcVar24 + 1,pbVar34);
          free(pcVar24);
        }
LAB_000299b0:
        local_40 = (local_40->link).next;
      } while (local_40 != (bfd *)0x0);
    }
  }
  lang_do_assignments(lang_mark_phase_enum);
  pmVar62 = lang_memory_region_list;
joined_r0x00028237:
  if (pmVar62 != (lang_memory_region_type *)0x0) {
    do {
      if (pmVar62->origin_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar62->origin_exp);
        bVar57 = expld.result.value;
        if (expld.result.valid_p == 0) {
          pcVar24 = (pmVar62->name_list).name;
          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          einfo(pcVar28,pcVar24);
        }
        else {
          pmVar62->origin = expld.result.value;
          pmVar62->current = bVar57;
        }
      }
      if (pmVar62->length_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar62->length_exp);
        if (expld.result.valid_p == 0) goto LAB_000283a0;
        pmVar62->length = expld.result.value;
      }
      pmVar62 = pmVar62->next;
      if (pmVar62 == (memory_region_struct *)0x0) break;
    } while( true );
  }
  expld.phase = lang_first_phase_enum;
  if (((link_info._7_1_ & 0x20) == 0) &&
     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {
    if (config.sort_common == sort_none) {
      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);
    }
    else {
      if (config.sort_common == sort_descending) {
        power = 4;
        do {
          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);
          power = power - 1;
        } while (power != 0);
        power = 0;
      }
      else {
        power = 0;
        do {
          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);
          power = power + 1;
        } while (power < 5);
        power = 0xffffffff;
      }
      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);
    }
  }
  lang_gc_sections_1(statement_list.head);
  uVar21 = link_info._0_1_;
  plVar47 = file_chain.head;
  if ((link_info._0_1_ & 3) == 2) {
    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head
        ) {
      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0
            ; pbVar34 = pbVar34->next) {
          if ((pbVar34->flags & 0x2000) == 0) {
            pbVar34->flags = pbVar34->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((uVar21 & 0x40) != 0) {
    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);
  }
  pbVar6 = link_info.input_bfds;
  if ((link_info._6_1_ & 0x20) != 0) {
    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {
      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);
      if (iVar23 == 0) {
        config.make_executable = 0;
      }
    }
  }
  ldemul_after_check_relocs();
  plVar55 = (lang_statement_union *)0x0;
  update_wild_statements(statement_list.head);
  lang_statement_iteration = lang_statement_iteration + 1;
  map_input_to_output_sections
            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0);
  plVar51 = (lang_statement_union *)0x0;
  plVar47 = ((lang_output_section_statement.head)->header).next;
  if (plVar47 == (lang_statement_union *)0x0) {
LAB_00028564:
    if (plVar55 != (lang_statement_union *)0x0) {
      (plVar55->output_section_statement).constraint =
           -2 - (plVar55->output_section_statement).constraint;
      while ((plVar51 != plVar55 &&
             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,
             plVar55 != (lang_statement_union *)0x0))) {
        (plVar55->output_section_statement).constraint =
             -2 - (plVar55->output_section_statement).constraint;
      }
    }
  }
  else {
    plVar58 = (lang_statement_union *)0x0;
    plVar63 = lang_output_section_statement.head;
    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {
      if ((plVar51 != (lang_statement_union *)0x0) &&
         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {
        info_assert("../../ld/ldlang.c",0xea0);
        plVar32 = (plVar63->header).next;
      }
      (plVar47->output_section_statement).constraint =
           -2 - (plVar47->output_section_statement).constraint;
      plVar51 = plVar47;
      plVar55 = plVar47;
      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;
LAB_0002855c:
      plVar47 = (plVar32->header).next;
      plVar58 = plVar55;
      plVar63 = plVar32;
      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;
    }
    if ((plVar47->header).type != lang_insert_statement_enum) {
LAB_0002855a:
      plVar55 = plVar58;
      goto LAB_0002855c;
    }
    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);
    if (after != (lang_output_section_statement_type *)0x0) {
      if ((plVar47->wild_statement).filenames_sorted != 0) {
        do {
          after = after->prev;
          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;
        } while (after->constraint < 0);
      }
      if (plVar51 != (lang_statement_union *)0x0) {
        plVar48 = (plVar58->output_section_statement).prev;
        plVar12 = (plVar51->output_section_statement).next;
        plVar48->next = plVar12;
        if (plVar12 == (lang_output_section_statement_struct *)0x0) {
          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;
          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;
          plVar48 = after->next;
          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;
LAB_00029143:
          lang_output_section_statement.tail =
               (lang_statement_union **)&(plVar51->output_section_statement).next;
        }
        else {
          plVar12->prev = plVar48;
          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;
          plVar48 = after->next;
          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;
LAB_00028f0d:
          plVar48->prev = (lang_output_section_statement_struct *)plVar51;
        }
        (plVar58->output_section_statement).prev = after;
        paVar49 = (asection *)0x0;
        paVar44 = (asection *)0x0;
        after->next = (lang_output_section_statement_struct *)plVar58;
        do {
          (plVar58->output_section_statement).constraint =
               -2 - (plVar58->output_section_statement).constraint;
          paVar54 = (plVar58->output_section_statement).bfd_section;
          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&
             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {
            paVar44 = paVar54;
          }
        } while ((plVar51 != plVar58) &&
                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,
                plVar58 != (lang_statement_union *)0x0));
        plVar58 = (lang_statement_union *)0x0;
        if (paVar49 != (asection *)0x0) {
          paVar54 = after->bfd_section;
          if (paVar54 == (asection *)0x0) {
            plVar58 = (lang_statement_union *)after->prev;
            if (plVar58 != (lang_statement_union *)0x0) {
              do {
                if (((-1 < (plVar58->output_section_statement).constraint) &&
                    (paVar54 = (plVar58->output_section_statement).bfd_section,
                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))
                goto LAB_00028f6a;
                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;
              } while (plVar58 != (lang_statement_union *)0x0);
              plVar58 = (lang_statement_union *)0x0;
            }
          }
          else {
LAB_00028f6a:
            plVar58 = (lang_statement_union *)0x0;
            if (paVar54 != paVar49) {
              pbVar34 = paVar44->prev;
              pbVar52 = paVar49->next;
              if (pbVar34 == (bfd_section *)0x0) {
                (link_info.output_bfd)->sections = pbVar52;
              }
              else {
                pbVar34->next = pbVar52;
                pbVar52 = paVar49->next;
              }
              if (pbVar52 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = pbVar34;
              }
              else {
                pbVar52->prev = pbVar34;
              }
              pbVar34 = paVar54->next;
              paVar49->next = pbVar34;
              if (pbVar34 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = paVar49;
              }
              else {
                pbVar34->prev = paVar49;
              }
              paVar44->prev = paVar54;
              plVar58 = (lang_statement_union *)0x0;
              paVar54->next = paVar44;
            }
          }
        }
      }
      pplVar33 = insert_os_after(after);
      plVar47 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;
      plVar55 = *pplVar33;
      (plVar63->header).next = plVar55;
      if (plVar55 == (lang_statement_union *)0x0) {
        statement_list.tail = (lang_statement_union **)plVar63;
      }
      *pplVar33 = plVar47;
      plVar51 = (lang_statement_union *)0x0;
      plVar55 = plVar58;
      plVar32 = lang_output_section_statement.head;
      goto LAB_0002855c;
    }
LAB_00028636:
    pcVar24 = (plVar47->wild_statement).filename;
    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);
    einfo(pcVar28,pcVar24);
  }
  pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150);
  for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;
      plVar47 = (plVar47->wild_statement).children.head) {
    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;
joined_r0x00028684:
    if (pbVar52 != (bfd_section *)0x0) {
      do {
        if (pbVar52->output_section == (bfd_section *)0x0) {
          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x000286ac;
          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);
          bVar66 = false;
          bVar67 = bVar26 == 0;
          if (bVar67) {
            pbVar9 = (byte *)pbVar52->name;
            iVar23 = 7;
            pbVar40 = pbVar9;
            pbVar64 = (byte *)"COMMON";
            do {
              if (iVar23 == 0) break;
              iVar23 = iVar23 + -1;
              bVar66 = *pbVar40 < *pbVar64;
              bVar67 = *pbVar40 == *pbVar64;
              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;
              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;
            } while (bVar67);
            if ((!bVar66 && !bVar67) == bVar66) {
              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {
                if (default_common_section == (lang_output_section_statement_type *)0x0) {
                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);
                }
                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,
                                 default_common_section);
              }
            }
            else if (config.orphan_handling == orphan_handling_discard) {
              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);
              if ((plVar35->addr_tree == (etree_union *)0x0) &&
                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {
                peVar41 = exp_intop(0);
                plVar35->addr_tree = peVar41;
              }
              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);
            }
            else {
              if (config.orphan_handling == orphan_handling_error) {
                pbVar6 = pbVar52->owner;
                pcVar24 = (char *)dcgettext(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                einfo(pcVar24,pbVar52,pbVar6);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),
                 bVar26 == 0)) {
                iVar23 = 0;
              }
              else {
                iVar23 = 0x17e;
              }
              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);
              if (plVar35 == (lang_output_section_statement_type *)0x0) {
                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);
                if ((plVar35->addr_tree == (etree_union *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {
                  peVar41 = exp_intop(0);
                  plVar35->addr_tree = peVar41;
                }
                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);
              }
              if (config.orphan_handling == orphan_handling_warn) {
                pcVar24 = plVar35->name;
                pbVar6 = pbVar52->owner;
                pcVar28 = (char *)dcgettext(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                einfo(pcVar28,pbVar52,pbVar6,pcVar24);
              }
            }
          }
          else {
            pbVar52->output_section = pbVar34;
          }
        }
        pbVar52 = pbVar52->next;
        if (pbVar52 == (bfd_section *)0x0) break;
      } while( true );
    }
  }
  bVar42 = link_info._0_1_ & 3;
  ppbVar59 = start_stop_syms;
  plVar47 = lang_output_section_statement.head;
  pbVar6 = link_info.output_bfd;
  if (bVar42 != 2) {
    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);
    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");
    if (iVar23 == 0) {
      bVar42 = link_info._0_1_ & 3;
      ppbVar59 = start_stop_syms;
      plVar47 = lang_output_section_statement.head;
      pbVar6 = link_info.output_bfd;
    }
    else {
      bVar42 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;
        ppbVar59 = start_stop_syms;
        plVar47 = lang_output_section_statement.head;
        pbVar6 = link_info.output_bfd;
      }
      else {
        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;
        ppbVar59 = start_stop_syms;
        plVar47 = lang_output_section_statement.head;
        pbVar6 = link_info.output_bfd;
      }
    }
  }
  for (; start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,
      plVar47 != (lang_statement_union *)0x0;
      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {
    paVar44 = (plVar47->data_statement).output_section;
    if ((((paVar44 != (asection *)0x0) &&
         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))
        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&
       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&
        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {
      (plVar47->wild_statement).walk_wild_section_handler =
           (walk_wild_section_handler_t)paVar44->size;
    }
    ppbVar59 = start_stop_syms;
    pbVar6 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (start_stop_count != 0)) {
    ppbVar37 = ppbVar59 + start_stop_count;
    do {
      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {
        pbVar65 = (pbVar11->u).undef.abfd;
        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;
        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||
           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {
          pbVar11->field_0xc = 1;
          (pbVar11->u).undef.abfd = (bfd *)0x0;
          break;
        }
        ppbVar59 = ppbVar59 + 1;
        if (ppbVar59 == ppbVar37) goto LAB_000288f7;
      }
      ppbVar59 = ppbVar59 + 1;
    } while (ppbVar59 != ppbVar37);
  }
LAB_000288f7:
  if (bVar42 != 2) {
    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;
        paVar44 = paVar44->next) {
      pcVar24 = paVar44->name;
      sVar25 = strlen(pcVar24);
      pcVar28 = (char *)xmalloc(sVar25 + 10);
      sprintf(pcVar28,".startof.%s",pcVar24);
      lang_define_start_stop(pcVar28,paVar44);
      builtin_strncpy(pcVar28 + 1,".size",5);
      lang_define_start_stop(pcVar28 + 1,paVar44);
      free(pcVar28);
    }
  }
  ldemul_before_allocation();
  plVar53 = (lang_output_section_phdr_list *)0x0;
  local_4c = (void *)xmalloc(0x28);
  local_44 = 10;
  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {
    local_50 = (lang_statement_union *)0x0;
    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;
        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {
      if (-1 < (plVar47->output_section_statement).constraint) {
        plVar56 = (plVar47->output_section_statement).phdrs;
        if (plVar56 == (lang_output_section_phdr_list *)0x0) {
          if ((((plVar47->output_section_statement).sectype != noload_section) &&
              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&
             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&
              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {
            while( true ) {
              plVar53 = plVar56;
              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;
              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;
              if (plVar55 == (lang_statement_union *)0x0) break;
              plVar56 = (plVar55->output_section_statement).phdrs;
            }
            plVar53 = (lang_output_section_phdr_list *)0x0;
            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            einfo(pcVar24);
          }
        }
        else {
          plVar53 = plVar56;
          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;
          while (plVar7 != (lang_output_section_phdr_list *)0x0) {
LAB_000289ba:
            iVar23 = strcmp(plVar56->name,plVar8->name);
            uVar46 = local_44;
            if (iVar23 == 0) {
              if (local_44 <= local_50) {
                uVar46 = local_44 * 2;
                local_4c = (void *)xrealloc(local_4c,local_44 << 3);
              }
              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =
                   (plVar47->wild_statement).children.tail;
              local_50 = (lang_statement_union *)((int)local_50 + 1);
              plVar56->used = 1;
            }
            plVar56 = plVar56->next;
            local_44 = uVar46;
            plVar7 = plVar56;
          }
        }
      }
    }
    bVar57 = 0;
    if (plVar8->flags != (etree_type *)0x0) {
      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");
    }
    peVar41 = plVar8->at;
    bVar36 = 0;
    if (peVar41 != (etree_type *)0x0) {
      bVar36 = exp_get_vma(peVar41,0,"phdr load address");
      peVar41 = plVar8->at;
    }
    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,
                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,
                             plVar8->phdrs,local_50,local_4c);
    if (iVar23 == 0) {
      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      einfo(pcVar24);
    }
  }
  free(local_4c);
  has_relro_section = extraout_ECX;
  for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;
      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {
    if ((-1 < (plVar47->output_section_statement).constraint) &&
       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {
      paVar44 = (asection *)(plVar47->wild_statement).tree;
joined_r0x00028aeb:
      if (paVar44 != (asection *)0x0) {
        do {
          bVar66 = false;
          bVar67 = paVar44->index == 0;
          if (bVar67) {
            pbVar9 = (byte *)paVar44->id;
            has_relro_section = (bfd_boolean *)0x5;
            pbVar40 = pbVar9;
            pbVar64 = (byte *)0x3d35d;
            do {
              if (has_relro_section == (bfd_boolean *)0x0) break;
              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);
              bVar66 = *pbVar40 < *pbVar64;
              bVar67 = *pbVar40 == *pbVar64;
              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;
              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;
            } while (bVar67);
            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;
          }
          paVar44 = (asection *)paVar44->name;
          if (paVar44 == (asection *)0x0) break;
        } while( true );
      }
    }
  }
  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {
    power = 0;
    lang_find_relro_sections_1
              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);
    if (power == 0) {
      link_info._3_1_ = link_info._3_1_ & 0xef;
    }
  }
  lang_size_sections((bfd_boolean *)0x0,
                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));
  ldemul_after_allocation();
  pbVar6 = link_info.output_bfd;
  uVar46 = opb_shift;
  if (start_stop_count != 0) {
    ppbVar59 = start_stop_syms + start_stop_count;
    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);
    ppbVar37 = start_stop_syms;
    do {
      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {
        pcVar24 = (pbVar11->root).string;
        local_4c._0_1_ = (byte)uVar46;
        if (*pcVar24 != '.') {
          cVar22 = pbVar6->xvec->symbol_leading_char;
          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;
          (pbVar11->u).undef.abfd = pbVar10;
          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {
            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);
          }
          break;
        }
        if (pcVar24[2] != 'i') break;
        ppbVar37 = ppbVar37 + 1;
        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);
        (pbVar11->u).undef.abfd = pbVar65;
        if (ppbVar59 == ppbVar37) goto LAB_00028c60;
      }
      ppbVar37 = ppbVar37 + 1;
    } while (ppbVar59 != ppbVar37);
  }
LAB_00028c60:
  lang_do_assignments(lang_final_phase_enum);
  ldemul_finish();
  ldexp_finalize_syms();
  prVar16 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);
    pbVar34 = (link_info.output_bfd)->sections;
    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;
    if (pbVar34 != (bfd_section *)0x0) {
      do {
        if ((pbVar34->flags & 1) != 0) {
          uVar50 = pbVar34->vma + pbVar34->size & uVar46;
          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {
            uVar50 = pbVar34->size + pbVar34->lma & uVar46;
            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;
            pcVar24 = pbVar34->name;
            pcVar28 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            pcVar24 = pbVar34->name;
            pcVar28 = "%X%P: section %s VMA wraps around address space\n";
          }
          pcVar28 = (char *)dcgettext(0,pcVar28,5);
          einfo(pcVar28,pcVar24);
        }
LAB_000296b0:
        pbVar34 = pbVar34->next;
      } while (pbVar34 != (bfd_section *)0x0);
    }
    prVar16 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);
      uVar46 = 0;
      pbVar34 = (link_info.output_bfd)->sections;
      if (pbVar34 != (bfd_section *)0x0) {
        do {
          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&
             (pbVar34->size != 0)) {
            iVar23 = uVar46 * 2;
            uVar46 = uVar46 + 1;
            __ptr[iVar23] = (int)pbVar34;
            (__ptr + iVar23)[1] = 0;
          }
          pbVar34 = pbVar34->next;
        } while (pbVar34 != (bfd_section *)0x0);
        if (1 < uVar46) {
          qsort(__ptr,uVar46,8,sort_sections_by_lma);
          local_44 = 0;
          local_48 = (undefined4 *)0x0;
          local_50 = (lang_statement_union *)0x0;
          piVar60 = __ptr;
          do {
            puVar15 = (undefined4 *)*piVar60;
            plVar47 = local_50;
            puVar1 = local_48;
            uVar50 = local_44;
            if ((*(byte *)(puVar15 + 5) & 2) != 0) {
              uVar50 = puVar15[8];
              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))
              ;
              plVar47 = (lang_statement_union *)puVar15;
              if ((local_50 != (lang_statement_union *)0x0) &&
                 ((uVar50 <= local_48 || (local_48 < local_44)))) {
                uVar61 = *(undefined4 *)local_50;
                uVar31 = *puVar15;
                pcVar24 = (char *)dcgettext(0,
                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
                                            ,5);
                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);
                piVar60[1] = 1;
              }
            }
            local_44 = uVar50;
            local_48 = puVar1;
            local_50 = plVar47;
            piVar60 = piVar60 + 2;
          } while (__ptr + uVar46 * 2 != piVar60);
          qsort(__ptr,uVar46,8,sort_sections_by_vma);
          puVar1 = (undefined4 *)*__ptr;
          plVar47 = (lang_statement_union *)puVar1[7];
          uVar39 = 1;
          uVar50 = (uint)plVar47;
          do {
            iVar23 = uVar39 * 2;
            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;
            uVar39 = uVar39 + 1;
            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);
          } while (uVar39 != uVar46);
          uVar50 = 0;
          pvVar2 = (void *)(((int)&plVar47->header - 1U) +
                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));
          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,
                uVar50 != uVar46) {
            puVar1 = (undefined4 *)__ptr[uVar50 * 2];
            plVar47 = (lang_statement_union *)puVar1[7];
            pvVar2 = (void *)(((int)&plVar47->header - 1U) +
                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));
            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {
              uVar61 = *puVar1;
              uVar31 = *local_48;
              pcVar24 = (char *)dcgettext(0,
                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
                                          ,5);
              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);
            }
          }
LAB_000298a2:
          free(__ptr);
          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,
              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {
            if (pmVar62->had_full_message != 0) {
              pcVar24 = (pmVar62->name_list).name;
              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);
              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);
              einfo(pcVar28,pcVar24,iVar23);
            }
          }
          goto joined_r0x00028c93;
        }
      }
      free(__ptr);
      prVar16 = require_defined_symbol_list;
    }
  }
joined_r0x00028c93:
  for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {
    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);
    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {
      pcVar24 = prVar16->name;
      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      einfo(pcVar28,pcVar24);
    }
  }
  iVar23 = entry_from_cmdline;
  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {
    iVar23 = 1;
  }
  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {
    pcVar24 = (char *)dcgettext(0,
                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"
                                ,5);
    einfo(pcVar24);
  }
  if (entry_symbol.name == (char *)0x0) {
    entry_symbol.name = entry_symbol_default;
    iVar23 = 0;
  }
  iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);
  if ((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)) {
    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);
    if (iVar27 != 0) {
      iVar23 = bfd_set_start_address
                         (link_info.output_bfd,
                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +
                          *(int *)(iVar27 + 0x1c));
      if (iVar23 != 0) {
        return;
      }
      pcVar24 = "%F%P: %s: can\'t set start address\n";
      goto LAB_000290ef;
    }
  }
  uVar61 = bfd_scan_vma(entry_symbol.name,&power,0);
  if (*(char *)power != '\0') {
    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);
    pcVar24 = entry_symbol.name;
    if (iVar38 == 0) {
      if (iVar23 == 0) {
        return;
      }
      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_000290ef:
      pcVar28 = entry_symbol.name;
      pcVar24 = (char *)dcgettext(0,pcVar24,5);
      einfo(pcVar24,pcVar28);
      return;
    }
    uVar61 = *(undefined4 *)(iVar38 + 0x1c);
    if (iVar23 != 0) {
      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5
                                 );
      einfo(pcVar28,pcVar24,uVar61);
      uVar61 = *(undefined4 *)(iVar38 + 0x1c);
    }
  }
  iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61);
  if (iVar23 != 0) {
    return;
  }
  pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);
  einfo(pcVar24);
  return;
code_r0x00028eb3:
  plVar47 = (plVar47->wild_statement).children.head;
  goto joined_r0x0002800a;
LAB_000283a0:
  pcVar24 = (pmVar62->name_list).name;
  pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  einfo(pcVar28,pcVar24);
  pmVar62 = pmVar62->next;
  goto joined_r0x00028237;
code_r0x000286ac:
  (*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);
  pbVar52 = pbVar52->next;
  goto joined_r0x00028684;
code_r0x00028b27:
  plVar55 = (plVar47->wild_statement).children.head;
  pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  einfo(pcVar24,plVar55,pbVar9);
  paVar44 = (asection *)paVar44->name;
  has_relro_section = extraout_ECX_00;
  goto joined_r0x00028aeb;
}



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

void FUN_00027e10(void)

{
  void *pvVar1;
  byte bVar2;
  byte *pbVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  size_t sVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  char *pcVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  int *piVar14;
  undefined *puVar15;
  uint uVar16;
  byte *pbVar17;
  undefined4 uVar18;
  byte bVar19;
  undefined4 *puVar20;
  uint uVar21;
  uint uVar22;
  int *piVar23;
  int *piVar24;
  int iVar25;
  int *piVar26;
  int *piVar27;
  int iVar28;
  int *piVar29;
  byte *pbVar30;
  bool bVar31;
  bool bVar32;
  byte bVar33;
  int *local_50;
  void *local_4c;
  undefined4 *local_48;
  uint local_44;
  int local_40;
  char *local_20 [3];
  undefined4 uStack_14;
  
  bVar33 = 0;
  uStack_14 = 0x27e19;
  if (DAT_00091ca0 != 0) {
    FUN_0001e950();
  }
  DAT_00091850 = DAT_00091d88;
  FUN_000216f0(FUN_00024300,DAT_00091848);
  FUN_0001f200();
  FUN_00030060();
  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
    FUN_0001e720();
  }
  iVar5 = bfd_section_already_linked_table_init();
  if (iVar5 == 0) {
    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_00031760(uVar6);
  }
  DAT_00091780 = DAT_00091780 + 1;
  DAT_00091850 = DAT_00091d88;
  FUN_00025a30();
  piVar27 = DAT_00091bc8;
  piVar23 = DAT_00091bc4;
  piVar26 = DAT_000917a0;
  piVar24 = DAT_0009179c;
  if ((DAT_00091c20._1_1_ & 2) != 0) {
    iVar5 = *(int *)PTR_DAT_00091358;
    piVar29 = *(int **)(PTR_DAT_00091358 + 4);
    iVar9 = FUN_000351f0();
    if (iVar9 != 0) {
      uVar6 = FUN_00034b60();
      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_00031760(uVar12,uVar6);
    }
    FUN_00025a30();
    puVar15 = PTR_DAT_00091358;
    if (*(int *)PTR_DAT_00091358 != iVar5) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar14 = *(int **)(puVar15 + 4);
    iVar5 = *piVar29;
    *(int **)(puVar15 + 4) = piVar29;
    *piVar29 = 0;
    if (DAT_0009179c != piVar24) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar29 = DAT_000917a0;
    piVar24 = (int *)*piVar26;
    DAT_000917a0 = piVar26;
    *piVar26 = 0;
    if (DAT_00091bc4 != piVar23) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar23 = DAT_00091bc8;
    iVar9 = *piVar27;
    DAT_00091bc8 = piVar27;
    *piVar27 = 0;
    piVar26 = DAT_0009179c;
    piVar27 = DAT_00091bc4;
    if (iVar5 != 0) {
      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {
        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {
          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;
          break;
        }
        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {
          DAT_000917e0 = piVar26;
        }
        piVar27 = DAT_000917e0;
      }
      piVar26 = DAT_000917e0;
      if (DAT_000917e0 == (int *)0x0) {
        FUN_000317b0("../../ld/ldlang.c",0x1c32);
        piVar26 = DAT_000917e0;
      }
LAB_00029491:
      DAT_000917e0 = piVar26;
      piVar26 = DAT_000917e0;
      puVar15 = PTR_DAT_00091358;
      *piVar14 = *DAT_000917e0;
      *piVar26 = iVar5;
      if (piVar26 == *(int **)(puVar15 + 4)) {
        *(int **)(puVar15 + 4) = piVar14;
      }
      *piVar23 = piVar26[7];
      piVar26[7] = iVar9;
      piVar27 = DAT_000917a0;
      if (DAT_00091bc8 == piVar26 + 7) {
        DAT_00091bc8 = piVar23;
      }
      if (piVar26[2] == 0) {
        *piVar29 = (int)DAT_0009179c;
        DAT_0009179c = piVar24;
        if ((int **)piVar27 != &DAT_0009179c) {
          piVar29 = DAT_000917a0;
        }
      }
      else {
        *piVar29 = piVar26[6];
        piVar26[6] = (int)piVar24;
        if (piVar27 != piVar26 + 6) {
          piVar29 = DAT_000917a0;
        }
      }
      DAT_000917a0 = piVar29;
      piVar26 = DAT_000917a0;
      piVar24 = DAT_0009179c;
      DAT_00091780 = DAT_00091780 + 1;
      FUN_00025a30();
      if (DAT_0009179c != piVar24) {
        FUN_000317b0("../../ld/ldlang.c",0x1baf);
      }
      iVar5 = *piVar26;
      DAT_000917a0 = piVar26;
      *piVar26 = 0;
      while (iVar5 != 0) {
        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);
        iVar8 = *(int *)(iVar5 + 0x10);
        if (iVar9 != 0) {
          iVar8 = iVar9;
        }
        piVar24 = DAT_0009179c;
        if (DAT_00091bc4 != (int *)0x0) {
          piVar23 = (int *)0x0;
          local_50 = (int *)0x0;
          piVar26 = DAT_00091bc4;
          do {
            while (piVar26[4] != iVar8) {
              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {
                piVar23 = piVar26;
              }
              piVar26 = (int *)piVar26[7];
              if (piVar26 == (int *)0x0) goto LAB_000295b0;
            }
            iVar25 = piVar26[6];
            if (iVar25 != 0) {
              piVar24 = (int *)(iVar25 + 0x18);
              iVar8 = *(int *)(iVar25 + 0x18);
              goto LAB_000295f1;
            }
            piVar26 = (int *)piVar26[7];
            local_50 = piVar23;
          } while (piVar26 != (int *)0x0);
LAB_000295b0:
          if (local_50 != (int *)0x0) {
            piVar24 = local_50;
          }
        }
        piVar24 = piVar24 + 6;
        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {
          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&
             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {
            iVar8 = *piVar24;
            break;
          }
          piVar24 = (int *)(iVar8 + 0x18);
        }
LAB_000295f1:
        local_50 = (int *)(iVar5 + 0x18);
        if (iVar9 == 0) {
          *piVar24 = iVar5;
          iVar9 = *(int *)(iVar5 + 0x18);
          *(int *)(iVar5 + 0x18) = iVar8;
          iVar5 = iVar9;
        }
        else {
          iVar25 = *(int *)(iVar5 + 0x18);
          if (iVar25 != 0) {
            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);
            while (iVar9 == iVar28) {
              local_50 = (int *)(iVar25 + 0x18);
              iVar25 = *(int *)(iVar25 + 0x18);
              if (iVar25 == 0) break;
              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);
            }
          }
          *piVar24 = iVar5;
          iVar5 = *local_50;
          *local_50 = iVar8;
          if (*(int *)(iVar9 + 0xa0) != 0) {
            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;
          }
        }
      }
    }
  }
  if (DAT_00091c64 != (undefined4 *)0x0) {
    FUN_000317b0("../../ld/ldlang.c",0x1c67);
  }
  DAT_00091c64 = &DAT_00091794;
  if (DAT_00091798 == (undefined *)0x0) {
    DAT_00091c64 = DAT_00091794;
    if (PTR_s_start_00091360 != (undefined *)0x0) {
      FUN_000214f0();
    }
  }
  if (DAT_00091c6c != 0) {
    FUN_000214f0();
  }
  if (DAT_00091c70 != 0) {
    FUN_000214f0();
  }
  FUN_0002ff70();
  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {
    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);
    FUN_000317f0(uVar6);
    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
      FUN_000317f0(&DAT_0004be86,puVar13[1]);
      sVar7 = strlen((char *)puVar13[1]);
      if (0x1c < sVar7) {
        FUN_00030840();
        sVar7 = 0;
      }
      do {
        FUN_00030810();
        sVar7 = sVar7 + 1;
      } while (sVar7 != 0x1e);
      if (puVar13[2] != 0) {
        FUN_000317f0(&DAT_0004c110,puVar13[2]);
      }
      FUN_000317f0("(%pT)\n",puVar13[3]);
    }
  }
  bfd_section_already_linked_table_free();
  piVar24 = DAT_0009179c;
joined_r0x0002800a:
  if (piVar24 != (int *)0x0) {
    do {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        iVar5 = piVar24[4];
        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);
        iVar9 = DAT_00091c50;
        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {
          if (iVar8 != 0) {
            puVar13 = *(undefined4 **)(iVar5 + 4);
            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);
            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))
            goto LAB_000282ef;
            goto LAB_00028063;
          }
          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {
            puVar13 = *(undefined4 **)(iVar5 + 4);
            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);
LAB_000282ef:
            uVar6 = *puVar20;
            uVar12 = *puVar13;
            uVar18 = dcgettext(0,
                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                               ,5);
            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);
            goto joined_r0x0002832b;
          }
        }
        else {
joined_r0x0002832b:
          if (iVar8 != 0) {
LAB_00028063:
            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;
            uVar6 = 0;
            if (DAT_00091cd0 == 0) {
              uVar6 = bfd_set_error_handler(FUN_0001ded0);
            }
            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);
            if (iVar9 == 0) {
              if (DAT_00091cd0 != 0) {
                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
                FUN_00031760(uVar12,iVar5);
                goto LAB_00028ea4;
              }
            }
            else {
LAB_00028ea4:
              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;
            }
            bfd_set_error_handler(uVar6);
            goto LAB_000280c0;
          }
        }
        if (DAT_00091cd0 == 0) goto LAB_000280c0;
        uVar6 = bfd_printable_name(DAT_00091c50);
        uVar12 = bfd_printable_name(iVar5);
        uVar18 = dcgettext(0,
                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                           ,5);
        FUN_00031760(uVar18,uVar12,iVar5,uVar6);
        piVar24 = (int *)piVar24[6];
      }
      else {
LAB_000280c0:
        piVar24 = (int *)piVar24[6];
      }
      if (piVar24 == (int *)0x0) break;
    } while( true );
  }
  if (DAT_00091d14 != 0) {
    uVar6 = 0;
    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {
        iVar9 = *(int *)(iVar5 + 0x24);
        pcVar10 = (char *)xmalloc(iVar9);
        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);
        if (iVar8 == 0) {
          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          FUN_00031760(uVar12,iVar5);
        }
        pcVar11 = pcVar10 + iVar9;
        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {
          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);
          sVar7 = strlen(pcVar10);
        }
        piVar24 = (int *)piVar24[6];
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;
        if (piVar24 == (int *)0x0) goto LAB_000281aa;
      }
    }
LAB_000281aa:
    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);
    iVar5 = xcalloc(1,0x3c);
    *(undefined4 *)(iVar5 + 0xc) = uVar6;
    *(undefined4 *)(iVar5 + 0x1c) = uVar12;
    *(code **)(iVar5 + 0x38) = FUN_0001eb80;
    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;
    FUN_000279d0(DAT_00091d14,iVar5,0);
  }
  FUN_0002ad40();
  puVar15 = PTR__sch_istable_00090fa8;
  if (DAT_00091d2c != 0) {
    local_40 = DAT_00091c58;
    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);
    if (DAT_00091c58 != 0) {
      do {
        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;
            puVar13 = (undefined4 *)puVar13[3]) {
          while( true ) {
            pbVar3 = (byte *)*puVar13;
            bVar19 = *pbVar3;
            if (bVar19 == 0) break;
            bVar2 = puVar15[(uint)bVar19 * 2];
            pbVar17 = pbVar3;
            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {
              pbVar17 = pbVar17 + 1;
              bVar19 = *pbVar17;
              if (bVar19 == 0) goto LAB_000299d0;
              bVar2 = puVar15[(uint)bVar19 * 2];
            }
            puVar13 = (undefined4 *)puVar13[3];
            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;
          }
LAB_000299d0:
          sVar7 = strlen((char *)pbVar3);
          pcVar10 = (char *)xmalloc(sVar7 + 10);
          *pcVar10 = cVar4;
          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);
          FUN_0001eaf0();
          pcVar10[1] = cVar4;
          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);
          FUN_0001eaf0();
          free(pcVar10);
        }
LAB_000299b0:
        local_40 = *(int *)(local_40 + 0x98);
      } while (local_40 != 0);
    }
  }
  FUN_00024940(1);
  puVar13 = DAT_000917ec;
joined_r0x00028237:
  if (puVar13 != (undefined4 *)0x0) {
    do {
      if (puVar13[3] != 0) {
        FUN_0002f4f0(puVar13[3]);
        uVar6 = DAT_00091db4;
        if (DAT_00091dc0 == 0) {
          uVar6 = *puVar13;
          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_00031760(uVar12,uVar6);
        }
        else {
          puVar13[4] = DAT_00091db4;
          puVar13[7] = uVar6;
        }
      }
      if (puVar13[6] != 0) {
        FUN_0002f4f0(puVar13[6]);
        if (DAT_00091dc0 == 0) goto LAB_000283a0;
        puVar13[5] = DAT_00091db4;
      }
      puVar13 = (undefined4 *)puVar13[2];
      if (puVar13 == (undefined4 *)0x0) break;
    } while( true );
  }
  DAT_00091da0 = 0;
  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {
    if (DAT_00091d4c == 0) {
      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);
    }
    else {
      if (DAT_00091d4c == 2) {
        local_20[0] = (char *)0x4;
        do {
          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
          local_20[0] = local_20[0] + -1;
        } while (local_20[0] != (char *)0x0);
        local_20[0] = (char *)0x0;
      }
      else {
        local_20[0] = (char *)0x0;
        do {
          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
          local_20[0] = local_20[0] + 1;
        } while (local_20[0] < (char *)0x5);
        local_20[0] = (char *)0xffffffff;
      }
      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
    }
  }
  FUN_00025560();
  bVar19 = (byte)DAT_00091c20;
  piVar24 = DAT_0009179c;
  if (((byte)DAT_00091c20 & 3) == 2) {
    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {
          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {
            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar19 & 0x40) != 0) {
    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);
  }
  iVar5 = DAT_00091c58;
  if ((DAT_00091c26 & 0x20) != 0) {
    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {
      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);
      if (iVar9 == 0) {
        DAT_00091d24 = 0;
      }
    }
  }
  FUN_0002ff90();
  piVar26 = (int *)0x0;
  FUN_0001e040();
  DAT_00091780 = DAT_00091780 + 1;
  FUN_00025680();
  piVar23 = (int *)0x0;
  piVar24 = (int *)*DAT_00091be0;
  if (piVar24 == (int *)0x0) {
LAB_00028564:
    if (piVar26 != (int *)0x0) {
      piVar26[0x12] = -2 - piVar26[0x12];
      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {
        piVar26[0x12] = -2 - piVar26[0x12];
      }
    }
  }
  else {
    piVar27 = (int *)0x0;
    piVar29 = DAT_00091be0;
    while (piVar14 = piVar24, piVar24[1] == 0) {
      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {
        FUN_000317b0("../../ld/ldlang.c",0xea0);
        piVar14 = (int *)*piVar29;
      }
      piVar24[0x12] = -2 - piVar24[0x12];
      piVar23 = piVar24;
      piVar26 = piVar24;
      if (piVar27 != (int *)0x0) goto LAB_0002855a;
LAB_0002855c:
      piVar24 = (int *)*piVar14;
      piVar27 = piVar26;
      piVar29 = piVar14;
      if (piVar24 == (int *)0x0) goto LAB_00028564;
    }
    if (piVar24[1] != 0xe) {
LAB_0002855a:
      piVar26 = piVar27;
      goto LAB_0002855c;
    }
    iVar5 = FUN_00022cf0(piVar24[2],0,0);
    if (iVar5 != 0) {
      if (piVar24[3] != 0) {
        do {
          iVar5 = *(int *)(iVar5 + 0x14);
          if (iVar5 == 0) goto LAB_00028636;
        } while (*(int *)(iVar5 + 0x48) < 0);
      }
      if (piVar23 != (int *)0x0) {
        iVar9 = piVar27[5];
        iVar8 = piVar23[4];
        *(int *)(iVar9 + 0x10) = iVar8;
        if (iVar8 == 0) {
          DAT_00091be4 = (int *)(iVar9 + 0x10);
          piVar23[4] = *(int *)(iVar5 + 0x10);
          iVar9 = *(int *)(iVar5 + 0x10);
          if (iVar9 != 0) goto LAB_00028f0d;
LAB_00029143:
          DAT_00091be4 = piVar23 + 4;
        }
        else {
          *(int *)(iVar8 + 0x14) = iVar9;
          piVar23[4] = *(int *)(iVar5 + 0x10);
          iVar9 = *(int *)(iVar5 + 0x10);
          if (iVar9 == 0) goto LAB_00029143;
LAB_00028f0d:
          *(int **)(iVar9 + 0x14) = piVar23;
        }
        piVar27[5] = iVar5;
        iVar8 = 0;
        iVar9 = 0;
        *(int **)(iVar5 + 0x10) = piVar27;
        do {
          piVar27[0x12] = -2 - piVar27[0x12];
          iVar25 = piVar27[7];
          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {
            iVar9 = iVar25;
          }
        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));
        piVar27 = (int *)0x0;
        if (iVar8 != 0) {
          iVar25 = *(int *)(iVar5 + 0x1c);
          if (iVar25 == 0) {
            piVar27 = *(int **)(iVar5 + 0x14);
            if (piVar27 != (int *)0x0) {
              do {
                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&
                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;
                piVar27 = (int *)piVar27[5];
              } while (piVar27 != (int *)0x0);
              piVar27 = (int *)0x0;
            }
          }
          else {
LAB_00028f6a:
            piVar27 = (int *)0x0;
            if (iVar25 != iVar8) {
              iVar5 = *(int *)(iVar9 + 0x10);
              iVar28 = *(int *)(iVar8 + 0xc);
              if (iVar5 == 0) {
                *(int *)(DAT_00091c50 + 0x60) = iVar28;
              }
              else {
                *(int *)(iVar5 + 0xc) = iVar28;
                iVar28 = *(int *)(iVar8 + 0xc);
              }
              if (iVar28 == 0) {
                *(int *)(DAT_00091c50 + 100) = iVar5;
              }
              else {
                *(int *)(iVar28 + 0x10) = iVar5;
              }
              iVar5 = *(int *)(iVar25 + 0xc);
              *(int *)(iVar8 + 0xc) = iVar5;
              if (iVar5 == 0) {
                *(int *)(DAT_00091c50 + 100) = iVar8;
              }
              else {
                *(int *)(iVar5 + 0x10) = iVar8;
              }
              *(int *)(iVar9 + 0x10) = iVar25;
              piVar27 = (int *)0x0;
              *(int *)(iVar25 + 0xc) = iVar9;
            }
          }
        }
      }
      piVar24 = (int *)FUN_0001dd70();
      iVar5 = *DAT_00091be0;
      *DAT_00091be0 = *(int *)*piVar29;
      iVar9 = *piVar24;
      *piVar29 = iVar9;
      if (iVar9 == 0) {
        DAT_0009184c = piVar29;
      }
      *piVar24 = iVar5;
      piVar23 = (int *)0x0;
      piVar26 = piVar27;
      piVar14 = DAT_00091be0;
      goto LAB_0002855c;
    }
LAB_00028636:
    iVar5 = piVar24[2];
    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);
    FUN_00031760(uVar6,iVar5);
  }
  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;
  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);
joined_r0x00028684:
    if (puVar13 != (undefined4 *)0x0) {
      do {
        if (puVar13[0xf] == 0) {
          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;
          iVar5 = FUN_0001eff0();
          bVar31 = false;
          bVar32 = iVar5 == 0;
          if (bVar32) {
            pbVar3 = (byte *)*puVar13;
            iVar5 = 7;
            pbVar17 = pbVar3;
            pbVar30 = (byte *)"COMMON";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar31 = *pbVar17 < *pbVar30;
              bVar32 = *pbVar17 == *pbVar30;
              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;
              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;
            } while (bVar32);
            if ((!bVar31 && !bVar32) == bVar31) {
              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {
                if (DAT_0009185c == 0) {
                  DAT_0009185c = FUN_00022cf0(".bss",0,1);
                }
                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);
              }
            }
            else if (DAT_00091d3c == 1) {
              iVar5 = FUN_00022cf0("/DISCARD/",0,1);
              if ((*(int *)(iVar5 + 0x2c) == 0) &&
                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {
                uVar6 = FUN_0002f3c0(0);
                *(undefined4 *)(iVar5 + 0x2c) = uVar6;
              }
              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);
            }
            else {
              if (DAT_00091d3c == 3) {
                uVar6 = puVar13[0x25];
                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_00031760(uVar12,puVar13,uVar6);
              }
              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {
                uVar6 = 0;
              }
              else {
                uVar6 = 0x17e;
              }
              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);
              if (iVar5 == 0) {
                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);
                if ((*(int *)(iVar5 + 0x2c) == 0) &&
                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {
                  uVar6 = FUN_0002f3c0(0);
                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;
                }
                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);
              }
              if (DAT_00091d3c == 2) {
                uVar6 = *(undefined4 *)(iVar5 + 0x18);
                uVar12 = puVar13[0x25];
                uVar18 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_00031760(uVar18,puVar13,uVar12,uVar6);
              }
            }
          }
          else {
            puVar13[0xf] = puVar15;
          }
        }
        puVar13 = (undefined4 *)puVar13[3];
        if (puVar13 == (undefined4 *)0x0) break;
      } while( true );
    }
  }
  bVar19 = (byte)DAT_00091c20 & 3;
  piVar24 = DAT_000917cc;
  piVar26 = DAT_00091be0;
  iVar5 = DAT_00091c50;
  if (bVar19 != 2) {
    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);
    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");
    if (iVar5 == 0) {
      bVar19 = (byte)DAT_00091c20 & 3;
      piVar24 = DAT_000917cc;
      piVar26 = DAT_00091be0;
      iVar5 = DAT_00091c50;
    }
    else {
      bVar19 = (byte)DAT_00091c20 & 3;
      if (DAT_00091d50 == 0) {
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;
        piVar24 = DAT_000917cc;
        piVar26 = DAT_00091be0;
        iVar5 = DAT_00091c50;
      }
      else {
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;
        piVar24 = DAT_000917cc;
        piVar26 = DAT_00091be0;
        iVar5 = DAT_00091c50;
      }
    }
  }
  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;
      piVar26 = (int *)piVar26[4]) {
    iVar5 = piVar26[5];
    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&
       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {
      piVar26[9] = *(int *)(iVar5 + 0x24);
    }
    piVar24 = DAT_000917cc;
    iVar5 = DAT_00091c50;
  }
  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {
    piVar26 = piVar24 + DAT_000917c8;
    do {
      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {
        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];
        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||
           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {
          *(undefined1 *)(iVar9 + 0xc) = 1;
          *(undefined4 *)(iVar9 + 0x14) = 0;
          break;
        }
        piVar24 = piVar24 + 1;
        if (piVar24 == piVar26) goto LAB_000288f7;
      }
      piVar24 = piVar24 + 1;
    } while (piVar24 != piVar26);
  }
LAB_000288f7:
  if (bVar19 != 2) {
    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;
        puVar13 = (undefined4 *)puVar13[3]) {
      pcVar10 = (char *)*puVar13;
      sVar7 = strlen(pcVar10);
      pcVar11 = (char *)xmalloc(sVar7 + 10);
      sprintf(pcVar11,".startof.%s",pcVar10);
      FUN_0001eaf0();
      builtin_strncpy(pcVar11 + 1,".size",5);
      FUN_0001eaf0();
      free(pcVar11);
    }
  }
  FUN_0002ffd0();
  piVar24 = (int *)0x0;
  local_4c = (void *)xmalloc(0x28);
  local_44 = 10;
  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
    local_50 = (int *)0x0;
    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {
      if (-1 < piVar26[0x12]) {
        piVar23 = (int *)piVar26[0xe];
        if (piVar23 == (int *)0x0) {
          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&
             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&
              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {
            while( true ) {
              piVar24 = piVar23;
              if (piVar23 != (int *)0x0) goto LAB_000289ba;
              piVar27 = (int *)piVar27[4];
              if (piVar27 == (int *)0x0) break;
              piVar23 = (int *)piVar27[0xe];
            }
            piVar24 = (int *)0x0;
            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_00031760(uVar6);
          }
        }
        else {
          piVar24 = piVar23;
          piVar27 = (int *)piVar26[7];
          while (piVar27 != (int *)0x0) {
LAB_000289ba:
            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);
            uVar21 = local_44;
            if (iVar5 == 0) {
              if (local_44 <= local_50) {
                uVar21 = local_44 * 2;
                local_4c = (void *)xrealloc(local_4c,local_44 << 3);
              }
              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];
              local_50 = (int *)((int)local_50 + 1);
              piVar23[2] = 1;
            }
            piVar23 = (int *)*piVar23;
            local_44 = uVar21;
            piVar27 = piVar23;
          }
        }
      }
    }
    uVar6 = 0;
    if (puVar13[6] != 0) {
      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");
    }
    iVar5 = puVar13[5];
    uVar12 = 0;
    if (iVar5 != 0) {
      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");
      iVar5 = puVar13[5];
    }
    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,
                            puVar13[3],puVar13[4],local_50,local_4c);
    if (iVar5 == 0) {
      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_00031760(uVar6);
    }
  }
  free(local_4c);
  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {
    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {
      piVar26 = (int *)piVar24[0xe];
joined_r0x00028aeb:
      if (piVar26 != (int *)0x0) {
        do {
          bVar31 = false;
          bVar32 = piVar26[2] == 0;
          if (bVar32) {
            pbVar3 = (byte *)piVar26[1];
            iVar5 = 5;
            pbVar17 = pbVar3;
            pbVar30 = (byte *)0x3d35d;
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar31 = *pbVar17 < *pbVar30;
              bVar32 = *pbVar17 == *pbVar30;
              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;
              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;
            } while (bVar32);
            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;
          }
          piVar26 = (int *)*piVar26;
          if (piVar26 == (int *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {
    local_20[0] = (char *)0x0;
    FUN_00025980();
    if (local_20[0] == (char *)0x0) {
      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;
    }
  }
  FUN_00026140(0,1 < DAT_00091c34);
  FUN_0002ffb0();
  iVar5 = DAT_00091c50;
  uVar6 = DAT_0009180c;
  if (DAT_000917c8 != 0) {
    piVar24 = DAT_000917cc + DAT_000917c8;
    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;
    piVar26 = DAT_000917cc;
    do {
      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {
        pcVar10 = *(char **)(iVar9 + 4);
        local_4c._0_1_ = (byte)uVar6;
        if (*pcVar10 != '.') {
          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);
          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);
          *(int *)(iVar9 + 0x14) = iVar8;
          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {
            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);
          }
          break;
        }
        if (pcVar10[2] != 'i') break;
        piVar26 = piVar26 + 1;
        *(uint *)(iVar9 + 0x18) =
             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);
        *(undefined **)(iVar9 + 0x14) = puVar15;
        if (piVar24 == piVar26) goto LAB_00028c60;
      }
      piVar26 = piVar26 + 1;
    } while (piVar24 != piVar26);
  }
LAB_00028c60:
  FUN_00024940(4);
  FUN_00030010();
  FUN_0002fea0();
  puVar13 = DAT_000917dc;
  if (DAT_00091cd8 != '\0') {
    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);
    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);
    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;
    if (puVar13 != (undefined4 *)0x0) {
      do {
        if ((*(byte *)(puVar13 + 5) & 1) != 0) {
          uVar22 = puVar13[7] + puVar13[9] & uVar21;
          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {
            uVar22 = puVar13[9] + puVar13[8] & uVar21;
            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;
            uVar6 = *puVar13;
            pcVar10 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar6 = *puVar13;
            pcVar10 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar12 = dcgettext(0,pcVar10,5);
          FUN_00031760(uVar12,uVar6);
        }
LAB_000296b0:
        puVar13 = (undefined4 *)puVar13[3];
      } while (puVar13 != (undefined4 *)0x0);
    }
    puVar13 = DAT_000917dc;
    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {
      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);
      uVar21 = 0;
      iVar5 = *(int *)(DAT_00091c50 + 0x60);
      if (iVar5 != 0) {
        do {
          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))
             && (*(int *)(iVar5 + 0x24) != 0)) {
            iVar9 = uVar21 * 2;
            uVar21 = uVar21 + 1;
            piVar24[iVar9] = iVar5;
            (piVar24 + iVar9)[1] = 0;
          }
          iVar5 = *(int *)(iVar5 + 0xc);
        } while (iVar5 != 0);
        if (1 < uVar21) {
          qsort(piVar24,uVar21,8,FUN_0001de50);
          local_44 = 0;
          local_48 = (undefined4 *)0x0;
          local_50 = (undefined4 *)0x0;
          piVar26 = piVar24;
          do {
            puVar20 = (undefined4 *)*piVar26;
            piVar23 = local_50;
            puVar13 = local_48;
            uVar22 = local_44;
            if ((*(byte *)(puVar20 + 5) & 2) != 0) {
              uVar22 = puVar20[8];
              puVar13 = (undefined4 *)
                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));
              piVar23 = puVar20;
              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))
                 ) {
                uVar6 = *local_50;
                uVar12 = *puVar20;
                uVar18 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);
                piVar26[1] = 1;
              }
            }
            local_44 = uVar22;
            local_48 = puVar13;
            local_50 = piVar23;
            piVar26 = piVar26 + 2;
          } while (piVar24 + uVar21 * 2 != piVar26);
          qsort(piVar24,uVar21,8,FUN_0001de90);
          puVar13 = (undefined4 *)*piVar24;
          piVar26 = (int *)puVar13[7];
          uVar16 = 1;
          uVar22 = (uint)piVar26;
          do {
            iVar5 = uVar16 * 2;
            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;
            uVar16 = uVar16 + 1;
            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);
          } while (uVar16 != uVar21);
          uVar22 = 0;
          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))
          ;
          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,
                uVar22 != uVar21) {
            puVar13 = (undefined4 *)piVar24[uVar22 * 2];
            piVar26 = (int *)puVar13[7];
            pvVar1 = (void *)(((int)piVar26 - 1U) +
                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));
            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))
            {
              uVar6 = *puVar13;
              uVar12 = *local_48;
              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);
            }
          }
LAB_000298a2:
          free(piVar24);
          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;
              puVar20 = (undefined4 *)puVar20[2]) {
            if (puVar20[0xb] != 0) {
              uVar6 = *puVar20;
              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);
              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);
              FUN_00031760(uVar12,uVar6,iVar5);
            }
          }
          goto joined_r0x00028c93;
        }
      }
      free(piVar24);
      puVar13 = DAT_000917dc;
    }
  }
joined_r0x00028c93:
  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {
    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);
    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {
      uVar6 = *puVar13;
      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_00031760(uVar12,uVar6);
    }
  }
  iVar5 = DAT_00091bbc;
  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {
    iVar5 = 1;
  }
  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {
    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_00031760(uVar6);
  }
  if (DAT_00091798 == (undefined *)0x0) {
    DAT_00091798 = PTR_s_start_00091360;
    iVar5 = 0;
  }
  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);
  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {
    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);
    if (iVar8 != 0) {
      iVar5 = bfd_set_start_address
                        (DAT_00091c50,
                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +
                         *(int *)(iVar8 + 0x1c));
      if (iVar5 != 0) {
        return;
      }
      pcVar10 = "%F%P: %s: can\'t set start address\n";
      goto LAB_000290ef;
    }
  }
  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);
  if (*local_20[0] != '\0') {
    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);
    puVar15 = DAT_00091798;
    if (iVar9 == 0) {
      if (iVar5 == 0) {
        return;
      }
      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_000290ef:
      puVar15 = DAT_00091798;
      uVar6 = dcgettext(0,pcVar10,5);
      FUN_00031760(uVar6,puVar15);
      return;
    }
    uVar6 = *(undefined4 *)(iVar9 + 0x1c);
    if (iVar5 != 0) {
      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_00031760(uVar12,puVar15,uVar6);
      uVar6 = *(undefined4 *)(iVar9 + 0x1c);
    }
  }
  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);
  if (iVar5 != 0) {
    return;
  }
  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_00031760(uVar6);
  return;
code_r0x00028eb3:
  piVar24 = (int *)piVar24[6];
  goto joined_r0x0002800a;
LAB_000283a0:
  uVar6 = *puVar13;
  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_00031760(uVar12,uVar6);
  puVar13 = (undefined4 *)puVar13[2];
  goto joined_r0x00028237;
code_r0x000286ac:
  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);
  puVar13 = (undefined4 *)puVar13[3];
  goto joined_r0x00028684;
code_r0x00028b27:
  iVar5 = piVar24[6];
  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_00031760(uVar6,iVar5,pbVar3);
  piVar26 = (int *)*piVar26;
  goto joined_r0x00028aeb;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a80
ADD EBX,0x691e7
SUB ESP,0x4c
LEA EAX,[EBX + 0xc20]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [EAX + 0x80]
TEST EAX,EAX
JZ 0x00027e3b
CALL 0x0001e950
LEA ESI,[EBX + 0xd88]
SUB ESP,0x8
MOV EAX,dword ptr [ESI]
PUSH dword ptr [EBX + 0x848]
MOV dword ptr [EBX + 0x850],EAX
LEA EAX,[EBX + 0xfff93300]
PUSH EAX
CALL 0x000216f0
CALL 0x0001f200
CALL 0x00030060
MOV EDI,dword ptr [EBX + 0x794]
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00027e86
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI + 0x4]
CALL 0x0001e720
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x00027e78
CALL 0x00014b90
TEST EAX,EAX
JZ 0x00029610
MOV EAX,dword ptr [ESI]
XOR EDX,EDX
ADD dword ptr [EBX + 0x780],0x1
MOV dword ptr [EBX + 0x850],EAX
MOV EAX,dword ptr [EBX + 0x848]
CALL 0x00025a30
MOV EAX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX + 0x1],0x2
JNZ 0x00029340
MOV EAX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [EAX + 0x44]
TEST ESI,ESI
JZ 0x00027edf
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbacfe]
PUSH 0x1c67
PUSH EAX
CALL 0x000317b0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [EBX + 0x798]
LEA EAX,[EBX + 0x794]
MOV dword ptr [ECX + 0x44],EAX
TEST EBP,EBP
JZ 0x00029ab8
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x4c]
TEST EAX,EAX
JZ 0x00027f0a
CALL 0x000214f0
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x50]
TEST EAX,EAX
JZ 0x00027f1a
CALL 0x000214f0
CALL 0x0002ff70
LEA EAX,[EBX + 0xd20]
MOV EDI,dword ptr [EAX + 0x50]
MOV dword ptr [ESP + 0x14],EAX
TEST EDI,EDI
JZ 0x00027fe9
MOV ESI,dword ptr [EBX + 0x810]
TEST ESI,ESI
JZ 0x00027fe9
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbac0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x000317f0
MOV ESI,dword ptr [EBX + 0x810]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x00027fe9
LEA EAX,[EBX + 0xfffbae86]
LEA EBP,[EBX + 0xfffbb115]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0xfffbb110]
MOV dword ptr [ESP + 0x10],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESP + 0x18]
CALL 0x000317f0
POP ECX
PUSH dword ptr [ESI + 0x4]
CALL 0x00014720
ADD ESP,0x10
MOV EDI,EAX
CMP EAX,0x1c
JA 0x00029158
NOP
CALL 0x00030810
ADD EDI,0x1
CMP EDI,0x1e
JNZ 0x00027fb0
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JZ 0x00027fd4
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x000317f0
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [ESI + 0xc]
PUSH EBP
CALL 0x000317f0
MOV ESI,dword ptr [ESI]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00027f88
CALL 0x00014be0
LEA EAX,[EBX + 0xcc0]
MOV EBP,dword ptr [EBX + 0x79c]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xfffbbbb8]
MOV dword ptr [ESP + 0x1c],EAX
TEST EBP,EBP
JZ 0x000280cb
TEST byte ptr [EBP + 0x25],0x20
JNZ 0x000280c0
SUB ESP,0x4
MOV ESI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX + 0x1c]
MOV EDI,dword ptr [ESP + 0x10]
PUSH dword ptr [EDI + 0x30]
PUSH ESI
CALL 0x00014460
MOV dword ptr [ESP + 0x1c],EAX
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0x20],AL
AND EAX,0x3
ADD ESP,0x10
CMP AL,0x2
JZ 0x000282c0
TEST byte ptr [EDI + 0x3],0x8
JNZ 0x000282c0
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00028338
MOV EAX,dword ptr [ESI + 0x68]
TEST EAX,EAX
JZ 0x000280c0
MOV EAX,dword ptr [ESP + 0x24]
XOR EDI,EDI
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00029210
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ECX + 0x30]
MOV EAX,dword ptr [EAX + 0x4]
PUSH ECX
PUSH ESI
CALL dword ptr [EAX + 0xac]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00028ea4
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JNZ 0x00028e88
SUB ESP,0xc
PUSH EDI
CALL 0x000145b0
ADD ESP,0x10
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JNZ 0x00028010
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x54]
TEST EDX,EDX
JZ 0x000281f4
MOV EDI,dword ptr [EBX + 0x79c]
XOR EBP,EBP
TEST EDI,EDI
JZ 0x000281aa
LEA EAX,[EBX + 0xfffbb11c]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffbbbf0]
MOV dword ptr [ESP + 0x1c],EAX
JMP 0x0002810b
MOV EDI,dword ptr [EDI + 0x18]
TEST EDI,EDI
JZ 0x000281aa
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [EDI + 0x10]
CALL 0x00014500
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00028100
MOV ECX,dword ptr [EAX + 0x24]
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],ECX
PUSH ECX
CALL 0x00014cc8
POP ECX
MOV ESI,EAX
POP EAX
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [EDI + 0x10]
CALL 0x000142d0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00029168
MOV EAX,dword ptr [ESP + 0xc]
ADD EAX,ESI
CMP ESI,EAX
JNC 0x00028194
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,EAX
LEA ESI,[ESI]
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x00027750
MOV dword ptr [ESP],ESI
MOV EBP,EAX
CALL 0x00014720
ADD ESP,0x10
LEA ESI,[ESI + EAX*0x1 + 0x1]
CMP ESI,EDI
JC 0x00028170
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [EDI + 0x18]
OR dword ptr [EAX + 0x14],0x208000
TEST EDI,EDI
JNZ 0x0002810b
LEA EAX,[EBX + 0xfffbafe8]
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH 0x0
CALL 0x00027750
MOV ESI,EAX
POP EAX
POP EDX
PUSH 0x3c
PUSH 0x1
CALL 0x00014c20
ADD ESP,0xc
LEA EDX,[EBX + 0xfff8db80]
MOV dword ptr [EAX + 0xc],EBP
MOV dword ptr [EAX + 0x1c],ESI
MOV dword ptr [EAX + 0x38],EDX
MOV dword ptr [EAX + 0x30],0xffffffff
PUSH 0x0
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX + 0x54]
CALL 0x000279d0
ADD ESP,0x10
CALL 0x0002ad40
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00029920
SUB ESP,0xc
LEA ESI,[EBX + 0xfffbbc20]
PUSH 0x1
CALL 0x00024940
LEA EAX,[EBX + 0xda0]
ADD ESP,0x10
MOV EDI,dword ptr [EBX + 0x7ec]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xfffbbc4c]
MOV dword ptr [ESP + 0xc],EAX
TEST EDI,EDI
JNZ 0x0002827c
JMP 0x000283d0
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EDI + 0x10],EAX
MOV dword ptr [EDI + 0x1c],EAX
MOV EAX,dword ptr [EDI + 0x18]
TEST EAX,EAX
JZ 0x00028271
SUB ESP,0xc
PUSH EAX
CALL 0x0002f4f0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [EAX + 0x20]
TEST EBP,EBP
JZ 0x000283a0
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [EDI + 0x14],EAX
MOV EDI,dword ptr [EDI + 0x8]
TEST EDI,EDI
JZ 0x000283d0
MOV EAX,dword ptr [EDI + 0xc]
TEST EAX,EAX
JZ 0x00028249
SUB ESP,0xc
PUSH EAX
CALL 0x0002f4f0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [EAX + 0x20]
TEST EBP,EBP
JNZ 0x00028240
SUB ESP,0x4
MOV EBP,dword ptr [EDI]
PUSH 0x5
PUSH ESI
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028249
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00028ec8
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ESI + 0x4]
MOV EDX,dword ptr [ECX + 0x30]
MOV ECX,dword ptr [EDX + 0x4]
MOV EDI,dword ptr [ECX + 0x4]
CMP dword ptr [EAX + 0x4],EDI
JZ 0x00028063
TEST byte ptr [ESI + 0x28],0x20
JZ 0x00028063
MOV ECX,dword ptr [ECX]
SUB ESP,0x4
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x1c],EDX
LEA EAX,[EBX + 0xfffbbb04]
MOV dword ptr [ESP + 0x14],ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV EDX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP],EDX
PUSH ECX
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00031760
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x00028063
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x000280c0
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x30]
CALL 0x00014590
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x00014590
ADD ESP,0xc
MOV EDI,EAX
LEA EAX,[EBX + 0xfffbbb6c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV EDX,dword ptr [ESP + 0x1c]
PUSH EDX
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00031760
MOV EBP,dword ptr [EBP + 0x18]
ADD ESP,0x20
TEST EBP,EBP
JNZ 0x00028010
JMP 0x000280cb
SUB ESP,0x4
MOV EBP,dword ptr [EDI]
PUSH 0x5
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00031760
MOV EDI,dword ptr [EDI + 0x8]
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x0002827c
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX + 0x7],0x20
JNZ 0x00028479
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0xc],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00029110
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x2c]
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x1c]
TEST EDX,EDX
JZ 0x00029bc8
CMP EDX,0x2
JZ 0x00029d00
MOV dword ptr [ESP + 0x3c],0x0
LEA ESI,[EBX + 0xfff8f320]
LEA EDI,[ESP + 0x3c]
JMP 0x0002843f
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x1c]
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00014880
MOV EAX,dword ptr [ESP + 0x4c]
ADD EAX,0x1
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
CMP EAX,0x4
JBE 0x00028438
MOV dword ptr [ESP + 0x3c],0xffffffff
SUB ESP,0x4
PUSH EDI
PUSH ESI
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x1c]
CALL 0x00014880
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0x848]
CALL 0x00025560
MOV EAX,dword ptr [ESP + 0x8]
MOVZX ESI,byte ptr [EAX]
MOV EAX,ESI
AND EAX,0x3
CMP AL,0x2
JZ 0x00029260
AND ESI,0x40
JZ 0x000284b5
MOV ECX,dword ptr [ESP + 0x8]
SUB ESP,0x8
MOV EAX,dword ptr [ECX + 0x30]
MOV EDX,dword ptr [EAX + 0x4]
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0x184]
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX + 0x6],0x20
JNZ 0x00029028
CALL 0x0002ff90
MOV EAX,dword ptr [EBX + 0x848]
XOR ESI,ESI
CALL 0x0001e040
MOV EAX,dword ptr [EBX + 0x848]
XOR ECX,ECX
XOR EDX,EDX
ADD dword ptr [EBX + 0x780],0x1
CALL 0x00025680
LEA EAX,[EBX + 0xbe0]
XOR ECX,ECX
MOV EBP,ECX
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x20],EAX
MOV EDX,dword ptr [EDI]
MOV EAX,EDX
TEST EDX,EDX
JZ 0x00028564
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [EDX + 0x4]
TEST ECX,ECX
JNZ 0x000285c0
MOV ECX,EDX
TEST EBP,EBP
JZ 0x00028547
CMP EDX,dword ptr [EBP + 0x10]
JZ 0x00028547
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0x8
LEA EDX,[EBX + 0xfffbacfe]
MOV dword ptr [ESP + 0x14],EAX
PUSH 0xea0
PUSH EDX
CALL 0x000317b0
ADD ESP,0x10
MOV EDX,dword ptr [EDI]
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP + 0xc]
MOV EDI,0xfffffffe
SUB EDI,dword ptr [EAX + 0x48]
MOV EBP,ECX
MOV dword ptr [EAX + 0x48],EDI
MOV EAX,EDX
TEST ESI,ESI
JZ 0x000285b0
MOV EDI,EAX
MOV EDX,dword ptr [EDI]
MOV EAX,EDX
TEST EDX,EDX
JNZ 0x00028508
MOV ECX,EBP
TEST ESI,ESI
JZ 0x00028658
MOV EAX,0xfffffffe
SUB EAX,dword ptr [ESI + 0x48]
MOV dword ptr [ESI + 0x48],EAX
CMP EBP,ESI
JZ 0x00028658
MOV EDX,0xfffffffe
JMP 0x000285a0
MOV EAX,EDX
SUB EAX,dword ptr [ESI + 0x48]
MOV dword ptr [ESI + 0x48],EAX
CMP ECX,ESI
JZ 0x00028658
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00028590
JMP 0x00028658
MOV ESI,ECX
MOV EDI,EAX
JMP 0x0002855c
CMP ECX,0xe
JNZ 0x0002855a
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00022cf0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00028636
MOV ECX,dword ptr [EDX + 0xc]
TEST ECX,ECX
JNZ 0x0002862f
TEST EBP,EBP
JNZ 0x00028ee8
CALL 0x0001dd70
MOV EBP,dword ptr [EDI]
MOV ECX,dword ptr [ESP + 0x20]
MOV EBP,dword ptr [EBP]
MOV EDX,dword ptr [ECX]
MOV ECX,dword ptr [EDX]
MOV dword ptr [EDX],EBP
MOV EDX,dword ptr [EAX]
MOV dword ptr [EDI],EDX
TEST EDX,EDX
JZ 0x00029230
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x20]
XOR EBP,EBP
MOV EAX,dword ptr [EAX]
MOV EDI,EAX
JMP 0x0002855c
MOV ECX,dword ptr [EAX + 0x48]
TEST ECX,ECX
JNS 0x000285ea
MOV EAX,dword ptr [EAX + 0x14]
TEST EAX,EAX
JNZ 0x00028628
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbff4]
MOV ESI,dword ptr [EDX + 0x8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0xffffffc4]
MOV ECX,dword ptr [EBX + 0x79c]
ADD EAX,0x150
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESP + 0x18],EAX
TEST ECX,ECX
JZ 0x000286df
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x10]
MOV EBP,dword ptr [EAX + 0x60]
TEST EBP,EBP
JNZ 0x00028697
JMP 0x000286d0
MOV EBP,dword ptr [EBP + 0xc]
TEST EBP,EBP
JZ 0x000286d0
MOV EAX,dword ptr [EBP + 0x3c]
TEST EAX,EAX
JNZ 0x00028690
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x24],0x10
JZ 0x000287a0
MOV EAX,dword ptr [EAX + 0x10]
SUB ESP,0x8
MOV EAX,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x10]
PUSH EBP
CALL dword ptr [EAX + 0x170]
MOV EBP,dword ptr [EBP + 0xc]
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x00028697
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0xc],EAX
TEST EAX,EAX
JNZ 0x00028678
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV ECX,EAX
MOV byte ptr [ESP + 0xc],AL
AND ECX,0x3
CMP CL,0x2
JZ 0x0002874b
MOV EDI,dword ptr [ESP + 0x8]
SUB ESP,0x8
MOV EAX,dword ptr [EDI + 0x30]
MOV EDX,dword ptr [EAX + 0x4]
PUSH EDI
PUSH EAX
CALL dword ptr [EDX + 0x18c]
POP EBP
POP EAX
LEA EAX,[EBX + 0xfffeeaf2]
PUSH EAX
PUSH dword ptr [EDI + 0x30]
CALL 0x00014500
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00029bb0
MOV ECX,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x14]
MOVZX ECX,byte ptr [ECX]
MOV ESI,dword ptr [EDI + 0x30]
MOV byte ptr [ESP + 0xc],CL
AND ECX,0x3
TEST ESI,ESI
JZ 0x00029b10
OR EDX,0x8
MOV dword ptr [EAX + 0x14],EDX
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0002876b
JMP 0x000288e8
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x000288e8
MOV EDX,dword ptr [EAX + 0x14]
TEST EDX,EDX
JZ 0x00028760
MOV EBP,dword ptr [EAX + 0x24]
TEST EBP,EBP
JNZ 0x00028760
MOV EDI,dword ptr [EAX + 0x30]
TEST EDI,EDI
JNZ 0x00028760
MOV ESI,dword ptr [EAX + 0x2c]
TEST ESI,ESI
JNZ 0x00028760
MOV EDI,dword ptr [EDX + 0x20]
CMP dword ptr [EAX + 0x20],EDI
JNZ 0x00028760
MOV EDX,dword ptr [EDX + 0x24]
MOV dword ptr [EAX + 0x24],EDX
JMP 0x00028760
MOV EAX,dword ptr [EBP + 0x14]
CALL 0x0001eff0
TEST EAX,EAX
JZ 0x000287c0
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EBP + 0x3c],EAX
JMP 0x00028690
MOV ESI,dword ptr [EBP]
MOV ECX,0x7
LEA EDI,[EBX + 0xfffbb093]
MOV dword ptr [ESP + 0x10],ESI
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00028820
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x000288a8
MOV EAX,dword ptr [EBX + 0x85c]
TEST EAX,EAX
JZ 0x000288c4
PUSH EAX
ADD EAX,0x8
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x00023ba0
ADD ESP,0x10
JMP 0x00028690
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x1c]
CMP EAX,0x1
JZ 0x00029a60
CMP EAX,0x3
JZ 0x00029ae0
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x38]
TEST EAX,EAX
JZ 0x00029240
MOV EDI,0x17e
SUB ESP,0x4
PUSH EDI
PUSH dword ptr [ESP + 0x18]
PUSH EBP
CALL 0x000300e0
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x00029b50
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0x1c],0x2
JNZ 0x00028690
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbcb0]
MOV EDI,dword ptr [ESI + 0x18]
MOV ESI,dword ptr [EBP + 0x94]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
PUSH EDI
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x00031760
ADD ESP,0x20
JMP 0x00028690
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x00028690
MOV EAX,dword ptr [EBX + 0x85c]
TEST EAX,EAX
JNZ 0x00028801
SUB ESP,0x4
LEA EAX,[EBX + 0xfffeead9]
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL 0x00022cf0
ADD ESP,0x10
MOV dword ptr [EBX + 0x85c],EAX
JMP 0x00028801
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x000292b0
CMP CL,0x2
JNZ 0x00029190
CALL 0x0002ffd0
SUB ESP,0xc
XOR EBP,EBP
PUSH 0x28
CALL 0x00014cc8
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xbd8]
ADD ESP,0x10
MOV EDI,dword ptr [EAX]
LEA EAX,[EBX + 0xfffbbfcc]
MOV dword ptr [ESP + 0x18],0xa
MOV dword ptr [ESP + 0x2c],EAX
TEST EDI,EDI
JZ 0x00028aa6
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0xc],0x0
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JZ 0x00028a1b
MOV dword ptr [ESP + 0x14],EDI
LEA ESI,[ESI]
MOV ECX,dword ptr [ESI + 0x48]
TEST ECX,ECX
JS 0x00028a0c
MOV EDI,dword ptr [ESI + 0x38]
TEST EDI,EDI
JZ 0x00028d98
MOV EAX,dword ptr [ESI + 0x1c]
MOV EBP,EDI
TEST EAX,EAX
JZ 0x00028a0c
MOV EBP,EDI
MOV dword ptr [ESP + 0x1c],EDI
MOV EDI,ESI
MOV ESI,EBP
MOV EBP,dword ptr [ESP + 0x18]
JMP 0x000289ba
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EDI + 0x1c]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [EDX + ECX*0x4],EAX
ADD ECX,0x1
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESI + 0x8],0x1
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JZ 0x00028a00
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x1c]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [ESI + 0x4]
CALL 0x000140c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000289b4
CMP dword ptr [ESP + 0xc],EBP
JC 0x00028998
LEA EAX,[EBP + EBP*0x1]
SUB ESP,0x8
SHL EBP,0x3
MOV dword ptr [ESP + 0x20],EAX
PUSH EBP
PUSH dword ptr [ESP + 0x1c]
CALL 0x000143c0
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
MOV EBP,dword ptr [ESP + 0x18]
JMP 0x00028998
MOV ESI,EDI
MOV EDI,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x18],EBP
MOV EBP,EDI
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00028960
MOV EDI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EDI + 0x18]
XOR ESI,ESI
TEST EAX,EAX
JZ 0x00028a3b
SUB ESP,0x4
LEA EDX,[EBX + 0xfffbb131]
PUSH EDX
PUSH 0x0
PUSH EAX
CALL 0x0002fba0
ADD ESP,0x10
MOV ESI,EAX
MOV EDX,dword ptr [EDI + 0x14]
XOR EAX,EAX
TEST EDX,EDX
JZ 0x00028a5c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbb13c]
PUSH EAX
PUSH 0x0
PUSH EDX
CALL 0x0002fba0
MOV EDX,dword ptr [EDI + 0x14]
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EDI + 0x10]
PUSH dword ptr [EDI + 0xc]
PUSH EAX
XOR EAX,EAX
TEST EDX,EDX
MOV EDX,dword ptr [EDI + 0x18]
SETNZ AL
PUSH EAX
XOR EAX,EAX
TEST EDX,EDX
PUSH ESI
SETNZ AL
PUSH EAX
PUSH dword ptr [EDI + 0x8]
MOV EAX,dword ptr [ESP + 0x34]
PUSH dword ptr [EAX + 0x30]
CALL 0x000146b0
ADD ESP,0x30
TEST EAX,EAX
JZ 0x00028e10
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x00028940
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x00014cb0
MOV EAX,dword ptr [ESP + 0x30]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0xfffac35d]
MOV dword ptr [ESP + 0x14],EAX
MOV EBP,EDX
TEST EDX,EDX
JZ 0x00028b6f
NOP
MOV EAX,dword ptr [EBP + 0x48]
TEST EAX,EAX
JS 0x00028b64
MOV EDI,dword ptr [EBP + 0x1c]
TEST EDI,EDI
JZ 0x00028b64
MOV EDX,dword ptr [EBP + 0x38]
TEST EDX,EDX
JZ 0x00028b64
LEA EAX,[EBX + 0xfffbbd20]
MOV dword ptr [ESP + 0xc],EBP
MOV EBP,EDX
MOV dword ptr [ESP + 0x18],EAX
JMP 0x00028b07
MOV EBP,dword ptr [EBP]
TEST EBP,EBP
JZ 0x00028b60
MOV ESI,dword ptr [EBP + 0x8]
TEST ESI,ESI
JNZ 0x00028b00
MOV EDX,dword ptr [EBP + 0x4]
MOV EDI,dword ptr [ESP + 0x14]
MOV ECX,0x5
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00028b00
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x10],EDX
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x18]
PUSH 0x5
PUSH dword ptr [ESP + 0x20]
PUSH 0x0
CALL 0x000142f0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x00031760
MOV EBP,dword ptr [EBP]
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x00028b07
LEA ESI,[ESI]
NOP
MOV EBP,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [EBP + 0x10]
TEST EBP,EBP
JNZ 0x00028ad0
MOV EAX,dword ptr [ESP + 0x8]
TEST byte ptr [EAX + 0x3],0x10
JNZ 0x00028fe0
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX + 0x14],0x1
SETA AL
MOVZX EAX,AL
PUSH EAX
PUSH 0x0
CALL 0x00026140
CALL 0x0002ffb0
MOV EDX,dword ptr [EBX + 0x7c8]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x00028c60
MOV EAX,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EBX + 0x80c]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0x7cc]
MOV dword ptr [ESP + 0xc],EBP
LEA EDI,[EAX + EDX*0x4]
MOV EDX,dword ptr [EBX + 0xffffffc4]
LEA ECX,[EDX + 0x150]
MOV dword ptr [ESP + 0x14],ECX
JMP 0x00028c17
MOV ECX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ECX + 0x4]
XOR ECX,ECX
CMP byte ptr [ESI + 0x18],0x0
MOV ESI,dword ptr [EDX + 0x14]
SETNZ CL
MOV ESI,dword ptr [ESI + 0x3c]
MOV dword ptr [EDX + 0x14],ESI
CMP byte ptr [EBP + ECX*0x1 + 0x4],0x6f
JNZ 0x00028c10
MOV ESI,dword ptr [ESI + 0x24]
MOVZX ECX,byte ptr [ESP + 0x10]
SHR ESI,CL
MOV dword ptr [EDX + 0x18],ESI
LEA ESI,[ESI]
ADD EAX,0x4
CMP EDI,EAX
JZ 0x00028c60
MOV EDX,dword ptr [EAX]
MOVZX ECX,word ptr [EDX + 0xc]
AND CX,0x8ff
CMP CX,0x3
JNZ 0x00028c10
MOV ECX,dword ptr [EDX + 0x4]
CMP byte ptr [ECX],0x2e
MOV EBP,ECX
JNZ 0x00028be0
CMP byte ptr [ECX + 0x2],0x69
JNZ 0x00028c10
MOV ECX,dword ptr [EDX + 0x14]
ADD EAX,0x4
MOV ESI,dword ptr [ECX + 0x24]
MOVZX ECX,byte ptr [ESP + 0x10]
SHR ESI,CL
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [EDX + 0x18],ESI
MOV dword ptr [EDX + 0x14],ECX
CMP EDI,EAX
JNZ 0x00028c17
LEA ESI,[ESI]
LEA ESI,[ESI]
SUB ESP,0xc
PUSH 0x4
CALL 0x00024940
CALL 0x00030010
CALL 0x0002fea0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
CMP byte ptr [EAX + 0x18],0x0
JNZ 0x00029638
MOV EDI,dword ptr [EBX + 0x7dc]
LEA ESI,[EBX + 0xfffbbe98]
TEST EDI,EDI
JZ 0x00028ce3
LEA ESI,[ESI]
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI]
MOV EAX,dword ptr [ESP + 0x24]
PUSH dword ptr [EAX + 0x1c]
CALL 0x00014550
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00028cc1
MOVZX EAX,byte ptr [EAX + 0xc]
SUB EAX,0x3
CMP AL,0x1
JBE 0x00028cdc
SUB ESP,0x4
MOV EBP,dword ptr [EDI]
PUSH 0x5
PUSH ESI
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
MOV EDI,dword ptr [EDI + 0x4]
TEST EDI,EDI
JNZ 0x00028c98
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV EDX,EAX
AND EDX,0x43
CMP DL,0x2
JZ 0x00028e38
AND EAX,0x3
MOV ESI,0x1
CMP AL,0x3
JZ 0x00028e38
CMP DL,0x42
JZ 0x00028e49
MOV EAX,dword ptr [EBX + 0x798]
TEST EAX,EAX
JZ 0x00029aa0
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV EDI,dword ptr [ESP + 0x24]
PUSH dword ptr [EDI + 0x1c]
CALL 0x00014550
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00028d4c
MOVZX ECX,byte ptr [EAX + 0xc]
LEA EDX,[ECX + -0x3]
CMP DL,0x1
JBE 0x000290b0
SUB ESP,0x4
PUSH 0x0
LEA EAX,[ESP + 0x44]
PUSH EAX
PUSH dword ptr [EBX + 0x798]
CALL 0x000140a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x3c]
CMP byte ptr [EDX],0x0
JNZ 0x00029070
SUB ESP,0x8
PUSH EAX
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x30]
CALL 0x00014b70
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00029b20
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESI + 0x50],0x2
JZ 0x00028a0c
MOV EAX,dword ptr [ESI + 0x1c]
TEST EAX,EAX
JZ 0x00028a0c
TEST byte ptr [EAX + 0x14],0x1
JZ 0x00028a0c
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0x8],0x3
JZ 0x00028a0c
TEST EBP,EBP
JZ 0x00028dd0
MOV EDI,EBP
JMP 0x00028983
MOV EAX,ESI
JMP 0x00028ddf
MOV EBP,dword ptr [EAX + 0x38]
TEST EBP,EBP
JNZ 0x00028dc9
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JNZ 0x00028dd8
SUB ESP,0x4
XOR EBP,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x34]
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028a0c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbcfc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028a9c
LEA EAX,[EBX + 0xbbc]
MOV ESI,dword ptr [EAX]
CMP DL,0x42
JNZ 0x00028d11
LEA EAX,[EBX + 0xbbc]
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0xbb8]
OR EDX,dword ptr [EAX]
JNZ 0x00028d11
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbec0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028d11
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x24]
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x000280aa
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JNZ 0x00028010
JMP 0x000280cb
TEST byte ptr [ESI + 0x28],0x20
JZ 0x00028338
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [EDX + 0x4]
JMP 0x000282ef
MOV ECX,dword ptr [ESI + 0x14]
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [ECX + 0x10],EDX
TEST EDX,EDX
JZ 0x00029128
MOV dword ptr [EDX + 0x14],ECX
MOV EDX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0x10],EDX
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JZ 0x00029143
MOV dword ptr [EDX + 0x14],EBP
MOV dword ptr [ESI + 0x14],EAX
XOR EDX,EDX
XOR ECX,ECX
MOV dword ptr [EAX + 0x10],ESI
MOV dword ptr [ESP + 0xc],EAX
NOP
MOV EAX,0xfffffffe
SUB EAX,dword ptr [ESI + 0x48]
MOV dword ptr [ESI + 0x48],EAX
MOV EAX,dword ptr [ESI + 0x1c]
TEST EAX,EAX
JZ 0x00028f42
CMP dword ptr [EAX + 0x94],0x0
JZ 0x00028f42
TEST ECX,ECX
MOV EDX,EAX
CMOVZ ECX,EAX
CMP EBP,ESI
JZ 0x00028f4d
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00028f20
MOV EAX,dword ptr [ESP + 0xc]
XOR ESI,ESI
MOV dword ptr [ESP + 0xc],EDX
TEST EDX,EDX
JZ 0x000285f2
MOV EBP,dword ptr [EAX + 0x1c]
TEST EBP,EBP
JZ 0x00029e5f
MOV EDX,dword ptr [ESP + 0xc]
XOR ESI,ESI
CMP EBP,EDX
JZ 0x000285f2
MOV ESI,dword ptr [ECX + 0x10]
MOV dword ptr [ESP + 0x18],EDX
MOV EDX,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0x10],ESI
CMP dword ptr [ESP + 0x10],0x0
MOV ESI,EDX
JZ 0x00029c17
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESI + 0xc],EDX
MOV EDX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EDX + 0xc]
MOV ESI,EDX
MOV EDX,ESI
TEST ESI,ESI
JZ 0x00029e4c
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [EDX + 0x10],ESI
MOV EDX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [ESP + 0xc]
MOV dword ptr [ESI + 0xc],EDX
TEST EDX,EDX
JZ 0x00029e39
MOV dword ptr [EDX + 0x10],ESI
MOV dword ptr [ECX + 0x10],EBP
XOR ESI,ESI
MOV dword ptr [EBP + 0xc],ECX
JMP 0x000285f2
MOV EDI,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0xc],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00028b7d
MOV EAX,dword ptr [ESP + 0x28]
LEA EDX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x3c],0x0
MOV EAX,dword ptr [EAX + 0x50]
CALL 0x00025980
MOV ECX,dword ptr [ESP + 0x3c]
TEST ECX,ECX
JNZ 0x00028b7d
AND byte ptr [EDI + 0x3],0xef
JMP 0x00028b7d
MOV EAX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [EAX + 0x38]
TEST ESI,ESI
JZ 0x000284c3
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH dword ptr [ESP + 0x10]
PUSH ESI
CALL 0x00014bc0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002905f
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EAX + 0x4],0x0
MOV ESI,dword ptr [ESI + 0x98]
TEST ESI,ESI
JNZ 0x00029040
JMP 0x000284c3
SUB ESP,0x8
PUSH dword ptr [EBX + 0x354]
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX + 0x30]
CALL 0x00014500
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JZ 0x00029db0
MOV EBP,dword ptr [EAX + 0x1c]
TEST ESI,ESI
JNZ 0x00029be8
SUB ESP,0x8
PUSH EBP
JMP 0x00028d75
MOV EDX,dword ptr [EAX + 0x14]
MOV ECX,dword ptr [EDX + 0x3c]
TEST ECX,ECX
JZ 0x00028d4c
SUB ESP,0x8
MOV EDX,dword ptr [EDX + 0x38]
ADD EDX,dword ptr [EAX + 0x18]
ADD EDX,dword ptr [ECX + 0x1c]
PUSH EDX
PUSH dword ptr [EDI + 0x30]
CALL 0x00014b70
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00028d8c
SUB ESP,0x4
MOV ESI,dword ptr [EBX + 0x798]
LEA EAX,[EBX + 0xfffbbf04]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x000283fe
JMP 0x00028479
MOV EDX,dword ptr [ESP + 0x20]
ADD ECX,0x10
MOV dword ptr [EDX + 0x4],ECX
MOV EDX,dword ptr [EAX + 0x10]
MOV dword ptr [EBP + 0x10],EDX
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JNZ 0x00028f0d
MOV ECX,dword ptr [ESP + 0x20]
LEA EDX,[EBP + 0x10]
MOV dword ptr [ECX + 0x4],EDX
JMP 0x00028f10
CALL 0x00030840
XOR EDI,EDI
JMP 0x00027fb0
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x24]
PUSH 0x0
CALL 0x000142f0
POP ECX
POP EDX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028159
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
MOV ESI,dword ptr [EAX + 0x60]
TEST ESI,ESI
JZ 0x00028900
LEA EAX,[EBX + 0xfffbb125]
MOV dword ptr [ESP + 0xc],EAX
LEA ESI,[ESI]
MOV EBP,dword ptr [ESI]
SUB ESP,0xc
PUSH EBP
CALL 0x00014720
ADD EAX,0xa
MOV dword ptr [ESP],EAX
CALL 0x00014cc8
ADD ESP,0xc
PUSH EBP
MOV EDI,EAX
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL 0x00014a20
MOV EDX,ESI
MOV EAX,EDI
CALL 0x0001eaf0
LEA EAX,[EDI + 0x1]
MOV dword ptr [EDI + 0x1],0x7a69732e
MOV EDX,ESI
MOV byte ptr [EAX + 0x4],0x65
CALL 0x0001eaf0
MOV dword ptr [ESP],EDI
CALL 0x00014cb0
MOV ESI,dword ptr [ESI + 0xc]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x000291b0
JMP 0x00028900
SUB ESP,0xc
LEA EAX,[EBX + 0xfff8ced0]
PUSH EAX
CALL 0x000145b0
ADD ESP,0x10
MOV EDI,EAX
JMP 0x0002807b
MOV dword ptr [EBX + 0x84c],EDI
JMP 0x00028612
XOR EDX,EDX
MOV EAX,EBP
CALL 0x00020cd0
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x00028848
JMP 0x0002884d
MOV ECX,dword ptr [EBX + 0x79c]
TEST ECX,ECX
JNZ 0x0002927b
JMP 0x00028498
MOV ECX,dword ptr [ECX + 0x18]
TEST ECX,ECX
JZ 0x00028498
TEST byte ptr [ECX + 0x25],0x20
JNZ 0x00029270
MOV EAX,dword ptr [ECX + 0x10]
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JZ 0x00029270
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EAX + 0x14]
TEST DH,0x20
JNZ 0x0002929e
AND DH,0x7f
MOV dword ptr [EAX + 0x14],EDX
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00029290
JMP 0x00029270
MOV EAX,dword ptr [EBX + 0x7c8]
TEST EAX,EAX
JZ 0x000288f7
MOV EDX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [EBX + 0x7cc]
MOV byte ptr [ESP + 0x10],CL
MOV EDX,dword ptr [EDX + 0x30]
LEA EBP,[ESI + EAX*0x4]
MOV ECX,EDX
JMP 0x000292f2
MOV byte ptr [EDI + 0xc],0x1
MOV dword ptr [EDI + 0x14],0x0
ADD ESI,0x4
CMP ESI,EBP
JZ 0x00029330
MOV EDI,dword ptr [ESI]
TEST byte ptr [EDI + 0xd],0x8
JNZ 0x000292eb
MOV EDX,dword ptr [EDI + 0x14]
MOV EAX,dword ptr [EDX + 0x3c]
TEST EAX,EAX
JZ 0x000292e0
CMP dword ptr [EAX + 0x94],ECX
JNZ 0x000292e0
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0x8
PUSH dword ptr [EAX]
PUSH dword ptr [EDX]
CALL 0x000140c0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JNZ 0x000292e0
ADD ESI,0x4
CMP ESI,EBP
JNZ 0x000292f2
NOP
MOVZX ECX,byte ptr [ESP + 0x10]
JMP 0x000288f7
MOV EAX,dword ptr [EBX + 0x358]
MOV EDI,dword ptr [EBX + 0x7a0]
MOV EBP,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBX + 0x79c]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0xbc4]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x14],ECX
MOV dword ptr [ESP + 0x18],EAX
CALL 0x000351f0
TEST EAX,EAX
JNZ 0x00029dd0
MOV EAX,dword ptr [ESI]
XOR EDX,EDX
CALL 0x00025a30
MOV EAX,dword ptr [EBX + 0x358]
CMP dword ptr [EAX],EBP
JZ 0x000293b1
MOV dword ptr [ESP + 0x1c],EAX
LEA EDX,[EBX + 0xfffbacfe]
SUB ESP,0x8
PUSH 0x1baf
PUSH EDX
CALL 0x000317b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [EAX + 0x4]
MOV EBP,dword ptr [ESI]
MOV dword ptr [EAX + 0x4],ESI
MOV dword ptr [ESI],0x0
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x1c],ECX
CMP dword ptr [EBX + 0x79c],EAX
JZ 0x000293e6
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbacfe]
PUSH 0x1baf
PUSH EAX
CALL 0x000317b0
ADD ESP,0x10
MOV EAX,dword ptr [EDI]
MOV ESI,dword ptr [EBX + 0x7a0]
MOV dword ptr [EBX + 0x7a0],EDI
MOV ECX,dword ptr [ESP + 0x14]
MOV dword ptr [EDI],0x0
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EAX],ECX
JZ 0x00029421
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbacfe]
PUSH 0x1baf
PUSH EAX
CALL 0x000317b0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESP + 0x14],ECX
MOV ECX,dword ptr [ESP + 0x10]
MOV EDI,dword ptr [ECX + 0x4]
MOV dword ptr [ECX + 0x4],EAX
MOV dword ptr [EAX],0x0
TEST EBP,EBP
JZ 0x00027ebd
MOV EAX,dword ptr [EBX + 0x79c]
MOV EDX,dword ptr [ECX]
TEST EAX,EAX
JNZ 0x00029471
JMP 0x00029483
MOV ECX,dword ptr [EAX + 0x10]
TEST ECX,ECX
JZ 0x0002946a
MOV ECX,dword ptr [ECX + 0x88]
TEST ECX,ECX
CMOVZ EDX,EAX
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x00029483
MOVZX ECX,byte ptr [EAX + 0x25]
TEST CL,0x20
JZ 0x00029458
AND ECX,0x40
JZ 0x00029f3b
MOV dword ptr [EBX + 0x7e0],EDX
TEST EDX,EDX
JZ 0x00029f68
MOV EAX,dword ptr [EBX + 0x358]
MOV ECX,dword ptr [EDX]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [EDX],EBP
CMP EDX,dword ptr [EAX + 0x4]
JZ 0x00029f1a
MOV EAX,dword ptr [EDX + 0x1c]
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [EDX + 0x1c],EAX
LEA EAX,[EDX + 0x1c]
CMP dword ptr [ECX + 0x4],EAX
JZ 0x00029f12
MOV ECX,dword ptr [EDX + 0x8]
MOV EAX,dword ptr [EBX + 0x7a0]
TEST ECX,ECX
JZ 0x00029eeb
MOV ECX,dword ptr [EDX + 0x18]
ADD EDX,0x18
MOV dword ptr [ESI],ECX
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [EDX],ECX
CMP EAX,EDX
JZ 0x00029f53
MOV EAX,dword ptr [EBX + 0x79c]
MOV ESI,dword ptr [EBX + 0x7a0]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EBX + 0x848]
MOV EDX,0x2
ADD dword ptr [EBX + 0x780],0x1
CALL 0x00025a30
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [EBX + 0x79c],EAX
JZ 0x0002953f
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbacfe]
PUSH 0x1baf
PUSH EAX
CALL 0x000317b0
ADD ESP,0x10
MOV EBP,dword ptr [ESI]
MOV dword ptr [EBX + 0x7a0],ESI
MOV dword ptr [ESI],0x0
LEA ESI,[ESI]
TEST EBP,EBP
JZ 0x00027ebd
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EDI + 0x88]
MOV EAX,dword ptr [EAX]
TEST ESI,ESI
CMOVNZ EDI,ESI
TEST EAX,EAX
JZ 0x00029cd0
XOR ECX,ECX
MOV dword ptr [ESP + 0xc],0x0
JMP 0x00029593
TEST EDX,EDX
JZ 0x0002958c
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
CMOVNZ ECX,EAX
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x000295b0
MOV EDX,dword ptr [EAX + 0x10]
CMP EDX,EDI
JNZ 0x00029580
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
JNZ 0x00029ce0
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0xc],ECX
TEST EAX,EAX
JNZ 0x00029593
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x00029cd0
ADD EAX,0x18
MOV ECX,EAX
MOV EAX,dword ptr [ECX]
TEST EAX,EAX
JZ 0x000295f1
LEA ESI,[ESI]
NOP
TEST byte ptr [EAX + 0x25],0x40
JNZ 0x000295e7
MOV EDX,dword ptr [EAX + 0x10]
MOV EDX,dword ptr [EDX + 0x88]
TEST EDX,EDX
JZ 0x00029cc8
LEA ECX,[EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JNZ 0x000295d0
LEA EDX,[EBP + 0x18]
MOV dword ptr [ESP + 0xc],EDX
TEST ESI,ESI
JNZ 0x00029c60
MOV dword ptr [ECX],EBP
MOV EDX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + 0x18],EAX
MOV EBP,EDX
JMP 0x00029550
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbb68c]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00027e93
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0x14]
PUSH dword ptr [ESI + 0x30]
CALL 0x00014c50
MOV EDX,0x1
ADD ESP,0x10
LEA ECX,[EAX + -0x1]
MOV EAX,dword ptr [ESI + 0x30]
SHL EDX,CL
MOV ESI,dword ptr [EAX + 0x60]
LEA EDI,[EDX + EDX*0x1 + -0x1]
TEST ESI,ESI
JZ 0x000296be
LEA EAX,[EBX + 0xfffbbd8c]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffbbd58]
MOV dword ptr [ESP + 0xc],EAX
LEA ESI,[ESI]
LEA ESI,[ESI]
TEST byte ptr [ESI + 0x14],0x1
JZ 0x000296b0
MOV ECX,dword ptr [ESI + 0x1c]
MOV EAX,dword ptr [ESI + 0x24]
LEA EDX,[ECX + EAX*0x1]
AND EDX,EDI
JZ 0x0002969d
AND ECX,EDI
CMP EDX,ECX
JC 0x00029b88
MOV EDX,dword ptr [ESI + 0x20]
ADD EAX,EDX
AND EAX,EDI
JZ 0x000296b0
AND EDX,EDI
CMP EAX,EDX
JC 0x00029cf0
MOV ESI,dword ptr [ESI + 0xc]
TEST ESI,ESI
JNZ 0x00029680
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [EAX + 0x68]
CMP EAX,0x1
JBE 0x00028c85
SUB ESP,0xc
SHL EAX,0x3
PUSH EAX
CALL 0x00014cc8
XOR ECX,ECX
MOV EBP,EAX
MOV EAX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV EAX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x1c],0x0
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JZ 0x00029f2a
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EAX + 0x14]
TEST DL,0x1
JZ 0x0002972d
AND EDX,0x402
CMP EDX,0x400
JZ 0x0002972d
MOV EDX,dword ptr [EAX + 0x24]
TEST EDX,EDX
JZ 0x0002972d
LEA EDX,[EBP + ECX*0x8]
ADD ECX,0x1
MOV dword ptr [EDX],EAX
MOV dword ptr [EDX + 0x4],0x0
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00029700
MOV dword ptr [ESP + 0xc],EAX
MOV EDI,ECX
MOV dword ptr [ESP + 0x1c],ECX
CMP ECX,0x1
JBE 0x00029f2a
LEA EDX,[EBX + 0xfff8ce50]
MOV ESI,EBP
PUSH EDX
PUSH 0x8
PUSH ECX
PUSH EBP
CALL 0x00014aa0
LEA EAX,[EBP + EDI*0x8]
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
LEA EAX,[EBX + 0xfffbbdc0]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x20],EBP
LEA ESI,[ESI]
MOV EDI,dword ptr [ESI]
TEST byte ptr [EDI + 0x14],0x2
JZ 0x000297ce
MOV ECX,dword ptr [EBX + 0x80c]
MOV EDX,dword ptr [EDI + 0x24]
MOV EBP,dword ptr [EDI + 0x20]
MOV EAX,dword ptr [ESP + 0xc]
SHR EDX,CL
LEA EDX,[EBP + EDX*0x1 + -0x1]
TEST EAX,EAX
JZ 0x000297c2
MOV ECX,dword ptr [ESP + 0x14]
CMP EBP,ECX
JBE 0x00029d48
MOV EAX,dword ptr [ESP + 0x18]
CMP ECX,EAX
JC 0x00029d48
MOV dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x18],EBP
MOV dword ptr [ESP + 0xc],EDI
ADD ESI,0x8
CMP dword ptr [ESP + 0x10],ESI
JNZ 0x00029788
LEA EAX,[EBX + 0xfff8ce90]
MOV EBP,dword ptr [ESP + 0x20]
PUSH EAX
PUSH 0x8
MOV ESI,dword ptr [ESP + 0x24]
PUSH ESI
PUSH EBP
CALL 0x00014aa0
MOV EAX,dword ptr [EBP]
MOV EDI,EAX
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0x1c],EAX
MOV ECX,EAX
ADD ESP,0x10
MOV EAX,0x1
LEA ESI,[ESI]
MOV EDX,dword ptr [EBP + EAX*0x8]
MOV EDX,dword ptr [EDX + 0x1c]
CMP EDX,ECX
JZ 0x000298a2
ADD EAX,0x1
MOV ECX,EDX
CMP EAX,ESI
JNZ 0x00029808
MOV ECX,dword ptr [EBX + 0x80c]
MOV EAX,dword ptr [EDI + 0x24]
XOR EDX,EDX
MOV dword ptr [ESP + 0x14],EDI
MOV ESI,EDX
MOV dword ptr [ESP + 0x18],EBP
SHR EAX,CL
MOV ECX,dword ptr [ESP + 0xc]
LEA EAX,[ECX + EAX*0x1 + -0x1]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffbbe00]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00029895
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EBX + 0x80c]
MOV EDI,dword ptr [EDX + ESI*0x8]
MOV EAX,dword ptr [EDI + 0x24]
MOV EBP,dword ptr [EDI + 0x1c]
SHR EAX,CL
LEA ECX,[EBP + EAX*0x1 + -0x1]
MOV EAX,dword ptr [EDX + ESI*0x8 + 0x4]
TEST EAX,EAX
JNZ 0x00029889
MOV EAX,dword ptr [ESP + 0x10]
CMP EAX,EBP
JNC 0x00029e98
MOV EDX,dword ptr [ESP + 0xc]
CMP EAX,EDX
JC 0x00029e98
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0xc],EBP
MOV dword ptr [ESP + 0x14],EDI
ADD ESI,0x1
CMP ESI,dword ptr [ESP + 0x1c]
JNZ 0x00029850
MOV EBP,dword ptr [ESP + 0x18]
SUB ESP,0xc
PUSH EBP
CALL 0x00014cb0
ADD ESP,0x10
LEA EAX,[EBX + 0xfffbbe40]
MOV ESI,dword ptr [EBX + 0x7ec]
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0xfffbbe6c]
MOV dword ptr [ESP + 0x10],EAX
TEST ESI,ESI
JNZ 0x000298e3
JMP 0x00028c85
MOV ESI,dword ptr [ESI + 0x8]
TEST ESI,ESI
JZ 0x00028c85
MOV EDI,dword ptr [ESI + 0x2c]
TEST EDI,EDI
JZ 0x000298d8
MOV EBP,dword ptr [ESI + 0x1c]
MOV EAX,dword ptr [ESI + 0x14]
SUB ESP,0xc
ADD EAX,dword ptr [ESI + 0x10]
MOV EDI,dword ptr [ESI]
PUSH 0x5
SUB EBP,EAX
PUSH EBP
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x28]
PUSH 0x0
CALL 0x00014c10
ADD ESP,0x1c
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x000298d8
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ECX + 0x30]
MOV ECX,dword ptr [ECX + 0x38]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x1c],ECX
MOVZX EAX,byte ptr [EAX + 0x18]
MOV byte ptr [ESP + 0xc],AL
TEST ECX,ECX
JZ 0x00028208
CMP AL,0x1
MOV EBP,dword ptr [EBX + 0xffffffa8]
SBB EAX,EAX
ADD EAX,0x2
MOV dword ptr [ESP + 0x20],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x1c]
MOV EDI,dword ptr [EAX + 0x60]
LEA EAX,[EBX + 0xfffbb14e]
MOV dword ptr [ESP + 0x18],EAX
TEST EDI,EDI
JZ 0x000299b0
LEA ESI,[ESI]
MOV EDX,dword ptr [EDI]
MOVZX EAX,byte ptr [EDX]
TEST AL,AL
JZ 0x000299d0
MOVZX ECX,AL
TEST byte ptr [EBP + ECX*0x2],0x8c
JNZ 0x00029987
CMP AL,0x5f
JNZ 0x000299a9
MOV EAX,EDX
LEA ESI,[ESI]
ADD EAX,0x1
MOVZX ECX,byte ptr [EAX]
TEST CL,CL
JZ 0x000299d0
MOVZX ESI,CL
TEST byte ptr [EBP + ESI*0x2],0x8c
JNZ 0x00029990
CMP CL,0x5f
JZ 0x00029990
MOV EDI,dword ptr [EDI + 0xc]
TEST EDI,EDI
JNZ 0x00029970
MOV EAX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [EAX + 0x98]
MOV dword ptr [ESP + 0x1c],EAX
TEST EAX,EAX
JNZ 0x00029958
JMP 0x00028208
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x20],EDX
CALL 0x00014720
ADD EAX,0xa
MOV dword ptr [ESP],EAX
CALL 0x00014cc8
MOV ESI,EAX
MOVZX EAX,byte ptr [ESP + 0x1c]
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x14]
MOV byte ptr [ESI],AL
TEST AL,AL
PUSH EDX
PUSH dword ptr [ESP + 0x20]
MOV byte ptr [ESP + 0x18],AL
SETNZ AL
MOVZX EAX,AL
ADD EAX,ESI
PUSH EAX
CALL 0x00014a20
MOV EDX,EDI
MOV EAX,ESI
CALL 0x0001eaf0
MOVZX EAX,byte ptr [ESP + 0x1c]
MOV EDX,0x706f
MOV byte ptr [ESI + 0x1],AL
MOV EAX,dword ptr [ESP + 0x30]
ADD EAX,ESI
MOV word ptr [EAX + 0x4],DX
MOV EDX,EDI
MOV dword ptr [EAX],0x74735f5f
LEA EAX,[ESI + 0x1]
CALL 0x0001eaf0
MOV dword ptr [ESP],ESI
CALL 0x00014cb0
MOV EDI,dword ptr [EDI + 0xc]
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x00029970
JMP 0x000299b0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbaf76]
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL 0x00022cf0
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x2c]
TEST EAX,EAX
JZ 0x00029e08
PUSH ESI
ADD ESI,0x8
PUSH 0x0
PUSH EBP
PUSH ESI
CALL 0x00023ba0
ADD ESP,0x10
JMP 0x00028690
MOV EAX,dword ptr [EBX + 0x360]
XOR ESI,ESI
MOV dword ptr [EBX + 0x798],EAX
JMP 0x00028d1f
MOV EAX,dword ptr [EBX + 0x794]
MOV dword ptr [ECX + 0x44],EAX
MOV EAX,dword ptr [EBX + 0x360]
TEST EAX,EAX
JZ 0x00027efa
CALL 0x000214f0
JMP 0x00027efa
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbc78]
MOV ESI,dword ptr [EBP + 0x94]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
ADD ESP,0xc
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x00028839
AND EDX,0xfffffff7
MOV dword ptr [EAX + 0x14],EDX
JMP 0x0002874b
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbf28]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
MOV dword ptr [ESP],EAX
CALL 0x00031760
ADD ESP,0x10
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x1
PUSH EDI
PUSH dword ptr [ESP + 0x1c]
CALL 0x00022cf0
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x2c]
TEST EAX,EAX
JZ 0x00029c26
LEA EAX,[ESI + 0x8]
PUSH ESI
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x00023ba0
ADD ESP,0x10
JMP 0x00028868
SUB ESP,0x4
MOV EBP,dword ptr [ESI]
PUSH 0x5
PUSH dword ptr [ESP + 0x14]
PUSH 0x0
CALL 0x000142f0
POP ECX
POP EDX
PUSH EBP
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x000296b0
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV ECX,EAX
MOV byte ptr [ESP + 0xc],AL
AND ECX,0x3
JMP 0x0002874b
SUB ESP,0x4
LEA EDX,[EBX + 0xfff8f320]
PUSH 0x0
PUSH EDX
PUSH EAX
CALL 0x00014880
ADD ESP,0x10
JMP 0x00028479
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbf48]
MOV ESI,dword ptr [EBX + 0x798]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
ADD ESP,0xc
PUSH EBP
PUSH ESI
PUSH EAX
CALL 0x00031760
MOV EBP,dword ptr [EDI + 0x1c]
ADD ESP,0x10
JMP 0x0002909d
MOV EDX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [EDX + 0x30]
MOV dword ptr [EDX + 0x60],ESI
JMP 0x00028fa3
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00029c42
TEST byte ptr [EBP + 0x14],0x3
JNZ 0x00029b6f
SUB ESP,0xc
PUSH 0x0
CALL 0x0002f3c0
ADD ESP,0x10
MOV dword ptr [ESI + 0x2c],EAX
JMP 0x00029b6f
MOV EDX,dword ptr [EBP + 0x18]
TEST EDX,EDX
JZ 0x00029c9d
MOV EDI,dword ptr [EDX + 0x10]
CMP ESI,dword ptr [EDI + 0x88]
JNZ 0x00029c9d
MOV dword ptr [ESP + 0x14],EAX
JMP 0x00029c8b
MOV EAX,dword ptr [EDX + 0x10]
CMP dword ptr [EAX + 0x88],ESI
JNZ 0x00029c95
LEA EDI,[EDX + 0x18]
MOV EDX,dword ptr [EDX + 0x18]
TEST EDX,EDX
JNZ 0x00029c80
MOV dword ptr [ESP + 0xc],EDI
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ECX],EBP
MOV ECX,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [ECX]
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [ESI + 0xa0]
TEST EAX,EAX
JZ 0x00029550
MOV EDI,dword ptr [ESP + 0xc]
SUB EDI,0x18
MOV dword ptr [EAX + 0x18],EDI
JMP 0x00029550
MOV EAX,dword ptr [ECX]
JMP 0x000295f1
MOV ECX,dword ptr [EBX + 0x79c]
ADD ECX,0x18
JMP 0x000295c1
LEA ECX,[EDX + 0x18]
MOV EAX,dword ptr [EDX + 0x18]
JMP 0x000295f1
SUB ESP,0x4
MOV EBP,dword ptr [ESI]
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
JMP 0x00029b93
MOV dword ptr [ESP + 0x3c],0x4
LEA ESI,[EBX + 0xfff8f320]
LEA EDI,[ESP + 0x3c]
JMP 0x00029d1f
MOV EAX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EAX + 0x1c]
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00014880
MOV EAX,dword ptr [ESP + 0x4c]
SUB EAX,0x1
MOV dword ptr [ESP + 0x4c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00029d18
JMP 0x00028465
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x2c],EDX
SUB ESP,0x4
MOV ECX,dword ptr [EAX]
MOV EAX,dword ptr [EDI]
MOV dword ptr [ESP + 0x2c],ECX
MOV dword ptr [ESP + 0x10],EAX
PUSH 0x5
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
CALL 0x000142f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x34]
PUSH ECX
MOV EDX,dword ptr [ESP + 0x3c]
PUSH EDX
MOV dword ptr [ESP + 0x28],EDX
PUSH EBP
PUSH dword ptr [ESP + 0x24]
PUSH EAX
CALL 0x00031760
ADD ESP,0x20
MOV dword ptr [ESI + 0x4],0x1
MOV dword ptr [ESP + 0x18],EBP
MOV dword ptr [ESP + 0xc],EDI
JMP 0x000297ce
TEST ESI,ESI
JZ 0x00028d8c
SUB ESP,0x4
MOV ESI,dword ptr [EBX + 0x798]
LEA EAX,[EBX + 0xfffbbf84]
PUSH 0x5
JMP 0x000290ef
CALL 0x00034b60
SUB ESP,0x4
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xfffbba88]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142f0
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x24]
PUSH EDX
PUSH EAX
CALL 0x00031760
ADD ESP,0x10
JMP 0x0002937f
MOV EAX,dword ptr [ESP + 0x8]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00029e24
TEST byte ptr [EBP + 0x14],0x3
JNZ 0x00029a83
SUB ESP,0xc
PUSH 0x0
CALL 0x0002f3c0
ADD ESP,0x10
MOV dword ptr [ESI + 0x2c],EAX
JMP 0x00029a83
MOV EDX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EDX + 0x30]
MOV dword ptr [EDX + 0x64],ESI
JMP 0x00028fc9
MOV EDX,dword ptr [ESP + 0x8]
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EDX + 0x30]
MOV dword ptr [EDX + 0x64],ESI
JMP 0x00028fb4
MOV ESI,dword ptr [EAX + 0x14]
TEST ESI,ESI
JZ 0x000285f2
LEA ESI,[ESI]
MOV EBP,dword ptr [ESI + 0x48]
TEST EBP,EBP
JS 0x00029e8c
MOV EBP,dword ptr [ESI + 0x1c]
TEST EBP,EBP
JZ 0x00029e8c
MOV EDX,dword ptr [EBP + 0x94]
TEST EDX,EDX
JNZ 0x00028f6a
MOV ESI,dword ptr [ESI + 0x14]
TEST ESI,ESI
JNZ 0x00029e70
JMP 0x000285f2
MOV EAX,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x28],ECX
SUB ESP,0x4
MOV ECX,dword ptr [EDI]
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x18],EAX
PUSH 0x5
PUSH dword ptr [ESP + 0x2c]
PUSH 0x0
CALL 0x000142f0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x38]
PUSH ECX
MOV dword ptr [ESP + 0x20],ECX
PUSH EBP
PUSH dword ptr [ESP + 0x38]
PUSH EAX
CALL 0x00031760
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x00029889
MOV EDX,dword ptr [EBX + 0x79c]
MOV ECX,dword ptr [ESP + 0xc]
MOV dword ptr [ESI],EDX
LEA EDX,[EBX + 0x79c]
MOV dword ptr [EBX + 0x79c],ECX
CMP EAX,EDX
JZ 0x00029f48
MOV ESI,dword ptr [EBX + 0x7a0]
JMP 0x00029505
MOV dword ptr [ECX + 0x4],EDI
JMP 0x000294ce
MOV EAX,dword ptr [ESP + 0x1c]
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ECX + 0x4],EAX
JMP 0x000294b2
SUB ESP,0xc
PUSH EBP
CALL 0x00014cb0
ADD ESP,0x10
JMP 0x00028c85
MOV dword ptr [EBX + 0x7e0],EAX
MOV EDX,EAX
JMP 0x00029491
MOV dword ptr [EBX + 0x7a0],ESI
JMP 0x00029505
MOV EAX,dword ptr [EBX + 0x79c]
MOV dword ptr [EBX + 0x7a0],ESI
MOV dword ptr [ESP + 0xc],EAX
JMP 0x00029505
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbacfe]
PUSH 0x1c32
PUSH EAX
CALL 0x000317b0
MOV EDX,dword ptr [EBX + 0x7e0]
ADD ESP,0x10
JMP 0x00029491
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Type propagation algorithm not settling */\n\nvoid FUN_00027e10(void)\n\n{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}\n\n" comment comment (function_definition "void FUN_00027e10(void)\n\n{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" primitive_type (function_declarator "FUN_00027e10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "byte bVar33;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "void *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar33 = 0;" (assignment_expression "bVar33 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x27e19;" (assignment_expression "uStack_14 = 0x27e19" identifier = number_literal) ;) (if_statement "if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }" if (parenthesized_expression "(DAT_00091ca0 != 0)" ( (binary_expression "DAT_00091ca0 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001e950();\n  }" { (expression_statement "FUN_0001e950();" (call_expression "FUN_0001e950()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" identifier = identifier) ;) (expression_statement "FUN_000216f0(FUN_00024300,DAT_00091848);" (call_expression "FUN_000216f0(FUN_00024300,DAT_00091848)" identifier (argument_list "(FUN_00024300,DAT_00091848)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001f200();" (call_expression "FUN_0001f200()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030060();" (call_expression "FUN_00030060()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }" for ( (assignment_expression "puVar13 = DAT_00091794" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n    FUN_0001e720();\n  }" { (expression_statement "FUN_0001e720();" (call_expression "FUN_0001e720()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = bfd_section_already_linked_table_init();" (assignment_expression "iVar5 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier (argument_list "(0,"%F%P: can not create hash table: %E\n",5)" ( number_literal , (string_literal ""%F%P: can not create hash table: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" identifier = identifier) ;) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = DAT_00091bc8;" (assignment_expression "piVar27 = DAT_00091bc8" identifier = identifier) ;) (expression_statement "piVar23 = DAT_00091bc4;" (assignment_expression "piVar23 = DAT_00091bc4" identifier = identifier) ;) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00091c20._1_1_ & 2) != 0)" ( (binary_expression "(DAT_00091c20._1_1_ & 2) != 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 2)" ( (binary_expression "DAT_00091c20._1_1_ & 2" (field_expression "DAT_00091c20._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar5 = *(int *)PTR_DAT_00091358;" (assignment_expression "iVar5 = *(int *)PTR_DAT_00091358" identifier = (pointer_expression "*(int *)PTR_DAT_00091358" * (cast_expression "(int *)PTR_DAT_00091358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar29 = *(int **)(PTR_DAT_00091358 + 4);" (assignment_expression "piVar29 = *(int **)(PTR_DAT_00091358 + 4)" identifier = (pointer_expression "*(int **)(PTR_DAT_00091358 + 4)" * (cast_expression "(int **)(PTR_DAT_00091358 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00091358 + 4)" ( (binary_expression "PTR_DAT_00091358 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_000351f0();" (assignment_expression "iVar9 = FUN_000351f0()" identifier = (call_expression "FUN_000351f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" { (expression_statement "uVar6 = FUN_00034b60();" (assignment_expression "uVar6 = FUN_00034b60()" identifier = (call_expression "FUN_00034b60()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin reported error after all symbols read\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" identifier = identifier) ;) (if_statement "if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(int *)PTR_DAT_00091358 != iVar5)" ( (binary_expression "*(int *)PTR_DAT_00091358 != iVar5" (pointer_expression "*(int *)PTR_DAT_00091358" * (cast_expression "(int *)PTR_DAT_00091358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar14 = *(int **)(puVar15 + 4);" (assignment_expression "piVar14 = *(int **)(puVar15 + 4)" identifier = (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar29;" (assignment_expression "iVar5 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "*(int **)(puVar15 + 4) = piVar29;" (assignment_expression "*(int **)(puVar15 + 4) = piVar29" (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar29 = 0;" (assignment_expression "*piVar29 = 0" (pointer_expression "*piVar29" * identifier) = number_literal) ;) (if_statement "if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0009179c != piVar24)" ( (binary_expression "DAT_0009179c != piVar24" identifier != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = (int *)*piVar26;" (assignment_expression "piVar24 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (if_statement "if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_00091bc4 != piVar23)" ( (binary_expression "DAT_00091bc4 != piVar23" identifier != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar23 = DAT_00091bc8;" (assignment_expression "piVar23 = DAT_00091bc8" identifier = identifier) ;) (expression_statement "iVar9 = *piVar27;" (assignment_expression "iVar9 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "DAT_00091bc8 = piVar27;" (assignment_expression "DAT_00091bc8 = piVar27" identifier = identifier) ;) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" * identifier) = number_literal) ;) (expression_statement "piVar26 = DAT_0009179c;" (assignment_expression "piVar26 = DAT_0009179c" identifier = identifier) ;) (expression_statement "piVar27 = DAT_00091bc4;" (assignment_expression "piVar27 = DAT_00091bc4" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" for ( ; (comma_expression "DAT_000917e0 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_000917e0 = piVar27" identifier = identifier) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "piVar26 = (int *)piVar26[6]" identifier = (cast_expression "(int *)piVar26[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[6]" identifier [ number_literal ]))) ) (compound_statement "{\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" if (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" * (cast_expression "(byte *)((int)piVar26 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar26 + 0x25)" ( (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;" if (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40)" ( (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x40" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" * (cast_expression "(byte *)((int)piVar26 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar26 + 0x25)" ( (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00029491;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }" if (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0))" ( (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)" (parenthesized_expression "(piVar26[4] != 0)" ( (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(piVar26[4] + 0x88) == 0)" ( (binary_expression "*(int *)(piVar26[4] + 0x88) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x88)" * (cast_expression "(int *)(piVar26[4] + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[4] + 0x88)" ( (binary_expression "piVar26[4] + 0x88" (subscript_expression "piVar26[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_000917e0 = piVar26;\n        }" { (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar27 = DAT_000917e0;" (assignment_expression "piVar27 = DAT_000917e0" identifier = identifier) ;) })) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) (if_statement "if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" if (parenthesized_expression "(DAT_000917e0 == (int *)0x0)" ( (binary_expression "DAT_000917e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) })) (labeled_statement "LAB_00029491:\n      DAT_000917e0 = piVar26;" statement_identifier : (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" identifier = identifier) ;)) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" identifier = identifier) ;) (expression_statement "*piVar14 = *DAT_000917e0;" (assignment_expression "*piVar14 = *DAT_000917e0" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*DAT_000917e0" * identifier)) ;) (expression_statement "*piVar26 = iVar5;" (assignment_expression "*piVar26 = iVar5" (pointer_expression "*piVar26" * identifier) = identifier) ;) (if_statement "if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }" if (parenthesized_expression "(piVar26 == *(int **)(puVar15 + 4))" ( (binary_expression "piVar26 == *(int **)(puVar15 + 4)" identifier == (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int **)(puVar15 + 4) = piVar14;\n      }" { (expression_statement "*(int **)(puVar15 + 4) = piVar14;" (assignment_expression "*(int **)(puVar15 + 4) = piVar14" (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*piVar23 = piVar26[7];" (assignment_expression "*piVar23 = piVar26[7]" (pointer_expression "*piVar23" * identifier) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "piVar26[7] = iVar9;" (assignment_expression "piVar26[7] = iVar9" (subscript_expression "piVar26[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = DAT_000917a0;" (assignment_expression "piVar27 = DAT_000917a0" identifier = identifier) ;) (if_statement "if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }" if (parenthesized_expression "(DAT_00091bc8 == piVar26 + 7)" ( (binary_expression "DAT_00091bc8 == piVar26 + 7" identifier == (binary_expression "piVar26 + 7" identifier + number_literal)) )) (compound_statement "{\n        DAT_00091bc8 = piVar23;\n      }" { (expression_statement "DAT_00091bc8 = piVar23;" (assignment_expression "DAT_00091bc8 = piVar23" identifier = identifier) ;) })) (if_statement "if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" if (parenthesized_expression "(piVar26[2] == 0)" ( (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }" { (expression_statement "*piVar29 = (int)DAT_0009179c;" (assignment_expression "*piVar29 = (int)DAT_0009179c" (pointer_expression "*piVar29" * identifier) = (cast_expression "(int)DAT_0009179c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_0009179c = piVar24;" (assignment_expression "DAT_0009179c = piVar24" identifier = identifier) ;) (if_statement "if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }" if (parenthesized_expression "((int **)piVar27 != &DAT_0009179c)" ( (binary_expression "(int **)piVar27 != &DAT_0009179c" (cast_expression "(int **)piVar27" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_0009179c" & identifier)) )) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" { (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) })) }) (else_clause "else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" else (compound_statement "{\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" { (expression_statement "*piVar29 = piVar26[6];" (assignment_expression "*piVar29 = piVar26[6]" (pointer_expression "*piVar29" * identifier) = (subscript_expression "piVar26[6]" identifier [ number_literal ])) ;) (expression_statement "piVar26[6] = (int)piVar24;" (assignment_expression "piVar26[6] = (int)piVar24" (subscript_expression "piVar26[6]" identifier [ number_literal ]) = (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }" if (parenthesized_expression "(piVar27 != piVar26 + 6)" ( (binary_expression "piVar27 != piVar26 + 6" identifier != (binary_expression "piVar26 + 6" identifier + number_literal)) )) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" { (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) })) }))) (expression_statement "DAT_000917a0 = piVar29;" (assignment_expression "DAT_000917a0 = piVar29" identifier = identifier) ;) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(DAT_0009179c != piVar24)" ( (binary_expression "DAT_0009179c != piVar24" identifier != identifier) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar5 = *piVar26;" (assignment_expression "iVar5 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) ;) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (while_statement "while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" { (expression_statement "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);" (assignment_expression "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = iVar9;\n        }" { (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" identifier = identifier) ;) })) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" if (parenthesized_expression "(DAT_00091bc4 != (int *)0x0)" ( (binary_expression "DAT_00091bc4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" { (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = DAT_00091bc4;" (assignment_expression "piVar26 = DAT_00091bc4" identifier = identifier) ;) (do_statement "do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);" do (compound_statement "{\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          }" { (while_statement "while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" while (parenthesized_expression "(piVar26[4] != iVar8)" ( (binary_expression "piVar26[4] != iVar8" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" { (if_statement "if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }" if (parenthesized_expression "((piVar26[4] != 0) && (piVar26[6] != 0))" ( (binary_expression "(piVar26[4] != 0) && (piVar26[6] != 0)" (parenthesized_expression "(piVar26[4] != 0)" ( (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar26[6] != 0)" ( (binary_expression "piVar26[6] != 0" (subscript_expression "piVar26[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                piVar23 = piVar26;\n              }" { (expression_statement "piVar23 = piVar26;" (assignment_expression "piVar23 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar26 == (int *)0x0) goto LAB_000295b0;" if (parenthesized_expression "(piVar26 == (int *)0x0)" ( (binary_expression "piVar26 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000295b0;" goto statement_identifier ;)) })) (expression_statement "iVar25 = piVar26[6];" (assignment_expression "iVar25 = piVar26[6]" identifier = (subscript_expression "piVar26[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" { (expression_statement "piVar24 = (int *)(iVar25 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar25 + 0x18)" identifier = (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar25 + 0x18)" identifier = (pointer_expression "*(int *)(iVar25 + 0x18)" * (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000295f1;" goto statement_identifier ;) })) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" identifier = identifier) ;) }) while (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" statement_identifier : (if_statement "if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" if (parenthesized_expression "(local_50 != (int *)0x0)" ( (binary_expression "local_50 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar24 = local_50;\n          }" { (expression_statement "piVar24 = local_50;" (assignment_expression "piVar24 = local_50" identifier = identifier) ;) }))) })) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" identifier = (binary_expression "piVar24 + 6" identifier + number_literal)) ;) (for_statement "for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" for ( (assignment_expression "iVar8 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" { (if_statement "if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0))" ( (binary_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" (parenthesized_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x25) & 0x40)" ( (binary_expression "*(byte *)(iVar8 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar8 + 0x25)" * (cast_expression "(byte *)(iVar8 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x25)" ( (binary_expression "iVar8 + 0x25" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            iVar8 = *piVar24;\n            break;\n          }" { (expression_statement "iVar8 = *piVar24;" (assignment_expression "iVar8 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = (int *)(iVar8 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar8 + 0x18)" identifier = (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);" statement_identifier : (expression_statement "local_50 = (int *)(iVar5 + 0x18);" (assignment_expression "local_50 = (int *)(iVar5 + 0x18)" identifier = (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) ;)) (if_statement "if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }" { (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar5 + 0x18) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x18) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = iVar9;" (assignment_expression "iVar5 = iVar9" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" else (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" { (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" * (cast_expression "(int *)(iVar25 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" while (parenthesized_expression "(iVar9 == iVar28)" ( (binary_expression "iVar9 == iVar28" identifier == identifier) )) (compound_statement "{\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" { (expression_statement "local_50 = (int *)(iVar25 + 0x18);" (assignment_expression "local_50 = (int *)(iVar25 + 0x18)" identifier = (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar25 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar25 + 0x18)" identifier = (pointer_expression "*(int *)(iVar25 + 0x18)" * (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" * (cast_expression "(int *)(iVar25 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar5 = *local_50;" (assignment_expression "iVar5 = *local_50" identifier = (pointer_expression "*local_50" * identifier)) ;) (expression_statement "*local_50 = iVar8;" (assignment_expression "*local_50 = iVar8" (pointer_expression "*local_50" * identifier) = identifier) ;) (if_statement "if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" if (parenthesized_expression "(*(int *)(iVar9 + 0xa0) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xa0) != 0" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" { (expression_statement "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;" (assignment_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6" (pointer_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" * (cast_expression "(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x18)" ( (binary_expression "*(int *)(iVar9 + 0xa0) + 0x18" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "local_50 + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_00091c64 != (undefined4 *)0x0)" ( (binary_expression "DAT_00091c64 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_00091c64 = &DAT_00091794;" (assignment_expression "DAT_00091c64 = &DAT_00091794" identifier = (pointer_expression "&DAT_00091794" & identifier)) ;) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" if (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" ( (binary_expression "DAT_00091798 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" { (expression_statement "DAT_00091c64 = DAT_00091794;" (assignment_expression "DAT_00091c64 = DAT_00091794" identifier = identifier) ;) (if_statement "if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }" if (parenthesized_expression "(PTR_s_start_00091360 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_00091360 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000214f0();\n    }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }" if (parenthesized_expression "(DAT_00091c6c != 0)" ( (binary_expression "DAT_00091c6c != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000214f0();\n  }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }" if (parenthesized_expression "(DAT_00091c70 != 0)" ( (binary_expression "DAT_00091c70 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000214f0();\n  }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0002ff70();" (call_expression "FUN_0002ff70()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" if (parenthesized_expression "((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0))" ( (binary_expression "(DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00091d70 != 0)" ( (binary_expression "DAT_00091d70 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00091810 != (undefined4 *)0x0)" ( (binary_expression "DAT_00091810 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" { (expression_statement "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" identifier = (call_expression "dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" identifier (argument_list "(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" ( number_literal , (string_literal ""\nAs-needed library included to satisfy reference by file (symbol)\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_000317f0(uVar6);" (call_expression "FUN_000317f0(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (for_statement "for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" for ( (assignment_expression "puVar13 = DAT_00091810" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" { (expression_statement "FUN_000317f0(&DAT_0004be86,puVar13[1]);" (call_expression "FUN_000317f0(&DAT_0004be86,puVar13[1])" identifier (argument_list "(&DAT_0004be86,puVar13[1])" ( (pointer_expression "&DAT_0004be86" & identifier) , (subscript_expression "puVar13[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar7 = strlen((char *)puVar13[1]);" (assignment_expression "sVar7 = strlen((char *)puVar13[1])" identifier = (call_expression "strlen((char *)puVar13[1])" identifier (argument_list "((char *)puVar13[1])" ( (cast_expression "(char *)puVar13[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar7)" ( (binary_expression "0x1c < sVar7" number_literal < identifier) )) (compound_statement "{\n        FUN_00030840();\n        sVar7 = 0;\n      }" { (expression_statement "FUN_00030840();" (call_expression "FUN_00030840()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);" do (compound_statement "{\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar7 = sVar7 + 1;" (assignment_expression "sVar7 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar7 != 0x1e)" ( (binary_expression "sVar7 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" if (parenthesized_expression "(puVar13[2] != 0)" ( (binary_expression "puVar13[2] != 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" { (expression_statement "FUN_000317f0(&DAT_0004c110,puVar13[2]);" (call_expression "FUN_000317f0(&DAT_0004c110,puVar13[2])" identifier (argument_list "(&DAT_0004c110,puVar13[2])" ( (pointer_expression "&DAT_0004c110" & identifier) , (subscript_expression "puVar13[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_000317f0("(%pT)\n",puVar13[3]);" (call_expression "FUN_000317f0("(%pT)\n",puVar13[3])" identifier (argument_list "("(%pT)\n",puVar13[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar13[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (labeled_statement "joined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" if (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" * (cast_expression "(byte *)((int)piVar24 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 0x25)" ( (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }" { (expression_statement "iVar5 = piVar24[4];" (assignment_expression "iVar5 = piVar24[4]" identifier = (subscript_expression "piVar24[4]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);" (assignment_expression "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" identifier = (call_expression "bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" identifier (argument_list "(iVar5,DAT_00091c50,DAT_00091cdc)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = DAT_00091c50;" (assignment_expression "iVar9 = DAT_00091c50" identifier = identifier) ;) (if_statement "if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" if (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0))" ( (binary_expression "(((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_00091c20._3_1_ & 8) != 0)" ( (binary_expression "(DAT_00091c20._3_1_ & 8) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 8)" ( (binary_expression "DAT_00091c20._3_1_ & 8" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }" { (if_statement "if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" { (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 4)" * (cast_expression "(undefined4 **)(iVar5 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;" if (parenthesized_expression "((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))" ( (binary_expression "(puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" (parenthesized_expression "(puVar13[1] != puVar20[1])" ( (binary_expression "puVar13[1] != puVar20[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) != (subscript_expression "puVar20[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" * (cast_expression "(byte *)(iVar5 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000282ef;" goto statement_identifier ;)) (goto_statement "goto LAB_00028063;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" * (cast_expression "(byte *)(iVar5 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" { (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 4)" * (cast_expression "(undefined4 **)(iVar5 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000282ef:\n            uVar6 = *puVar20;" statement_identifier : (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;)) (expression_statement "uVar12 = *puVar13;" (assignment_expression "uVar12 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" identifier = (call_expression "dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" identifier (argument_list "(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" ( number_literal , (string_literal ""%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9)" identifier (argument_list "(uVar18,uVar12,iVar5,uVar6,iVar9)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0002832b;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" else (compound_statement "{\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" { (labeled_statement "joined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" statement_identifier : (if_statement "if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" { (labeled_statement "LAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" statement_identifier : (if_statement "if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" if (parenthesized_expression "(*(int *)(iVar5 + 0x68) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x68) == 0" (pointer_expression "*(int *)(iVar5 + 0x68)" * (cast_expression "(int *)(iVar5 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x68)" ( (binary_expression "iVar5 + 0x68" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" if (parenthesized_expression "(DAT_00091cd0 == 0)" ( (binary_expression "DAT_00091cd0 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" { (expression_statement "uVar6 = bfd_set_error_handler(FUN_0001ded0);" (assignment_expression "uVar6 = bfd_set_error_handler(FUN_0001ded0)" identifier = (call_expression "bfd_set_error_handler(FUN_0001ded0)" identifier (argument_list "(FUN_0001ded0)" ( identifier )))) ;) })) (expression_statement "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0xac)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar5,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }" { (if_statement "if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" if (parenthesized_expression "(DAT_00091cd0 != 0)" ( (binary_expression "DAT_00091cd0 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" { (expression_statement "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" identifier (argument_list "(0,"%X%P: failed to merge target specific data of file %pB\n",5)" ( number_literal , (string_literal ""%X%P: failed to merge target specific data of file %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" identifier (argument_list "(uVar12,iVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00028ea4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" else (compound_statement "{\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" { (labeled_statement "LAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" statement_identifier : (if_statement "if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" if (parenthesized_expression "(DAT_00091cd0 != 0)" ( (binary_expression "DAT_00091cd0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00028eb3;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler(uVar6);" (call_expression "bfd_set_error_handler(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;) }))) }))) (if_statement "if (DAT_00091cd0 == 0) goto LAB_000280c0;" if (parenthesized_expression "(DAT_00091cd0 == 0)" ( (binary_expression "DAT_00091cd0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;)) (expression_statement "uVar6 = bfd_printable_name(DAT_00091c50);" (assignment_expression "uVar6 = bfd_printable_name(DAT_00091c50)" identifier = (call_expression "bfd_printable_name(DAT_00091c50)" identifier (argument_list "(DAT_00091c50)" ( identifier )))) ;) (expression_statement "uVar12 = bfd_printable_name(iVar5);" (assignment_expression "uVar12 = bfd_printable_name(iVar5)" identifier = (call_expression "bfd_printable_name(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" identifier = (call_expression "dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" identifier (argument_list "(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" ( number_literal , (string_literal ""%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6)" identifier (argument_list "(uVar18,uVar12,iVar5,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" else (compound_statement "{\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" { (labeled_statement "LAB_000280c0:\n        piVar24 = (int *)piVar24[6];" statement_identifier : (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (piVar24 == (int *)0x0) break;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" if (parenthesized_expression "(DAT_00091d14 != 0)" ( (binary_expression "DAT_00091d14 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" for ( (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" { (while_statement "while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" while (parenthesized_expression "(iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0)" ( (comma_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0" (assignment_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports")" identifier = (call_expression "bfd_get_section_by_name(piVar24[4],".exports")" identifier (argument_list "(piVar24[4],".exports")" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , (string_literal "".exports"" " string_content ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" { (expression_statement "iVar9 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x24)" identifier = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = (char *)xmalloc(iVar9);" (assignment_expression "pcVar10 = (char *)xmalloc(iVar9)" identifier = (cast_expression "(char *)xmalloc(iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);" (assignment_expression "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" identifier = (call_expression "bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" identifier (argument_list "(piVar24[4],iVar5,pcVar10,0,0,iVar9)" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" { (expression_statement "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier (argument_list "(0,"%X%P: unable to read .exports section contents\n",5)" ( number_literal , (string_literal ""%X%P: unable to read .exports section contents\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" identifier (argument_list "(uVar12,iVar5)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar11 = pcVar10 + iVar9;" (assignment_expression "pcVar11 = pcVar10 + iVar9" identifier = (binary_expression "pcVar10 + iVar9" identifier + identifier)) ;) (for_statement "for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" for ( ; (binary_expression "pcVar10 < pcVar11" identifier < identifier) ; (assignment_expression "pcVar10 = pcVar10 + sVar7 + 1" identifier = (binary_expression "pcVar10 + sVar7 + 1" (binary_expression "pcVar10 + sVar7" identifier + identifier) + number_literal)) ) (compound_statement "{\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" { (expression_statement "uVar6 = FUN_00027750(uVar6,pcVar10,0,0);" (assignment_expression "uVar6 = FUN_00027750(uVar6,pcVar10,0,0)" identifier = (call_expression "FUN_00027750(uVar6,pcVar10,0,0)" identifier (argument_list "(uVar6,pcVar10,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" identifier = (call_expression "strlen(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) })) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_000281aa;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000281aa;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" statement_identifier : (expression_statement "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" (assignment_expression "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0)" identifier = (call_expression "FUN_00027750(0,&DAT_0004bfe8,0,0)" identifier (argument_list "(0,&DAT_0004bfe8,0,0)" ( number_literal , (pointer_expression "&DAT_0004bfe8" & identifier) , number_literal , number_literal )))) ;)) (expression_statement "iVar5 = xcalloc(1,0x3c);" (assignment_expression "iVar5 = xcalloc(1,0x3c)" identifier = (call_expression "xcalloc(1,0x3c)" identifier (argument_list "(1,0x3c)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(iVar5 + 0x38) = FUN_0001eb80;" (assignment_expression "*(code **)(iVar5 + 0x38) = FUN_0001eb80" (pointer_expression "*(code **)(iVar5 + 0x38)" * (cast_expression "(code **)(iVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000279d0(DAT_00091d14,iVar5,0);" (call_expression "FUN_000279d0(DAT_00091d14,iVar5,0)" identifier (argument_list "(DAT_00091d14,iVar5,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0002ad40();" (call_expression "FUN_0002ad40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar15 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_00091d2c != 0)" ( (binary_expression "DAT_00091d2c != 0" identifier != number_literal) )) (compound_statement "{\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" { (expression_statement "local_40 = DAT_00091c58;" (assignment_expression "local_40 = DAT_00091c58" identifier = identifier) ;) (expression_statement "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" if (parenthesized_expression "(DAT_00091c58 != 0)" ( (binary_expression "DAT_00091c58 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" { (do_statement "do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);" do (compound_statement "{\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      }" { (for_statement "for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" for ( (assignment_expression "puVar13 = *(undefined4 **)(local_40 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(local_40 + 0x60)" * (cast_expression "(undefined4 **)(local_40 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_40 + 0x60)" ( (binary_expression "local_40 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ) (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" { (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" { (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" identifier = (cast_expression "(byte *)*puVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "bVar19 = *pbVar3;" (assignment_expression "bVar19 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (if_statement "if (bVar19 == 0) break;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" identifier = (subscript_expression "puVar15[(uint)bVar19 * 2]" identifier [ (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" while (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)))" ( (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))" ( (binary_expression "(bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" ( (binary_expression "bVar2 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar19 == 0x5f)" ( (binary_expression "bVar19 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar17;" (assignment_expression "bVar19 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (if_statement "if (bVar19 == 0) goto LAB_000299d0;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000299d0;" goto statement_identifier ;)) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" identifier = (subscript_expression "puVar15[(uint)bVar19 * 2]" identifier [ (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000299b0;" goto statement_identifier ;)) })) (labeled_statement "LAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);" statement_identifier : (expression_statement "sVar7 = strlen((char *)pbVar3);" (assignment_expression "sVar7 = strlen((char *)pbVar3)" identifier = (call_expression "strlen((char *)pbVar3)" identifier (argument_list "((char *)pbVar3)" ( (cast_expression "(char *)pbVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar10 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar7 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 10)" identifier (argument_list "(sVar7 + 10)" ( (binary_expression "sVar7 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar10 = cVar4;" (assignment_expression "*pcVar10 = cVar4" (pointer_expression "*pcVar10" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" identifier (argument_list "(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" ( (binary_expression "pcVar10 + (cVar4 != '\0')" identifier + (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10[1] = cVar4;" (assignment_expression "pcVar10[1] = cVar4" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" identifier (argument_list "(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" ( (binary_expression "pcVar10 + (2 - (uint)(cVar4 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar4 == '\0'))" ( (binary_expression "2 - (uint)(cVar4 == '\0')" number_literal - (call_expression "(uint)(cVar4 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar10);" (call_expression "free(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) (labeled_statement "LAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);" statement_identifier : (expression_statement "local_40 = *(int *)(local_40 + 0x98);" (assignment_expression "local_40 = *(int *)(local_40 + 0x98)" identifier = (pointer_expression "*(int *)(local_40 + 0x98)" * (cast_expression "(int *)(local_40 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x98)" ( (binary_expression "local_40 + 0x98" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) })) })) (expression_statement "FUN_00024940(1);" (call_expression "FUN_00024940(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar13 = DAT_000917ec;" (assignment_expression "puVar13 = DAT_000917ec" identifier = identifier) ;) (labeled_statement "joined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    }" { (if_statement "if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" if (parenthesized_expression "(puVar13[3] != 0)" ( (binary_expression "puVar13[3] != 0" (subscript_expression "puVar13[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" { (expression_statement "FUN_0002f4f0(puVar13[3]);" (call_expression "FUN_0002f4f0(puVar13[3])" identifier (argument_list "(puVar13[3])" ( (subscript_expression "puVar13[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar6 = DAT_00091db4;" (assignment_expression "uVar6 = DAT_00091db4" identifier = identifier) ;) (if_statement "if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" if (parenthesized_expression "(DAT_00091dc0 == 0)" ( (binary_expression "DAT_00091dc0 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid origin for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid origin for memory region %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" else (compound_statement "{\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" { (expression_statement "puVar13[4] = DAT_00091db4;" (assignment_expression "puVar13[4] = DAT_00091db4" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[7] = uVar6;" (assignment_expression "puVar13[7] = uVar6" (subscript_expression "puVar13[7]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" if (parenthesized_expression "(puVar13[6] != 0)" ( (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" { (expression_statement "FUN_0002f4f0(puVar13[6]);" (call_expression "FUN_0002f4f0(puVar13[6])" identifier (argument_list "(puVar13[6])" ( (subscript_expression "puVar13[6]" identifier [ number_literal ]) ))) ;) (if_statement "if (DAT_00091dc0 == 0) goto LAB_000283a0;" if (parenthesized_expression "(DAT_00091dc0 == 0)" ( (binary_expression "DAT_00091dc0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000283a0;" goto statement_identifier ;)) (expression_statement "puVar13[5] = DAT_00091db4;" (assignment_expression "puVar13[5] = DAT_00091db4" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DAT_00091da0 = 0;" (assignment_expression "DAT_00091da0 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" if (parenthesized_expression "(((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))))" ( (binary_expression "((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" (parenthesized_expression "((DAT_00091c27 & 0x20) == 0)" ( (binary_expression "(DAT_00091c27 & 0x20) == 0" (parenthesized_expression "(DAT_00091c27 & 0x20)" ( (binary_expression "DAT_00091c27 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)" (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_00091cc0 != 0)" ( (binary_expression "DAT_00091cc0 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" { (if_statement "if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" if (parenthesized_expression "(DAT_00091d4c == 0)" ( (binary_expression "DAT_00091d4c == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" else (compound_statement "{\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" { (if_statement "if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" if (parenthesized_expression "(DAT_00091d4c == 2)" ( (binary_expression "DAT_00091d4c == 2" identifier == number_literal) )) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }" { (expression_statement "local_20[0] = (char *)0x4;" (assignment_expression "local_20[0] = (char *)0x4" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_20[0] = local_20[0] + -1;" (assignment_expression "local_20[0] = local_20[0] + -1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + -1" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal)) ;) }) while (parenthesized_expression "(local_20[0] != (char *)0x0)" ( (binary_expression "local_20[0] != (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" else (compound_statement "{\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" { (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_20[0] = local_20[0] + 1;" (assignment_expression "local_20[0] = local_20[0] + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal)) ;) }) while (parenthesized_expression "(local_20[0] < (char *)0x5)" ( (binary_expression "local_20[0] < (char *)0x5" (subscript_expression "local_20[0]" identifier [ number_literal ]) < (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_20[0] = (char *)0xffffffff;" (assignment_expression "local_20[0] = (char *)0xffffffff" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "FUN_00025560();" (call_expression "FUN_00025560()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar19 = (byte)DAT_00091c20;" (assignment_expression "bVar19 = (byte)DAT_00091c20" identifier = (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" * (cast_expression "(byte *)((int)piVar24 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 0x25)" ( (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "iVar5 = *(int *)(piVar24[4] + 0x60)" identifier = (pointer_expression "*(int *)(piVar24[4] + 0x60)" * (cast_expression "(int *)(piVar24[4] + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[4] + 0x60)" ( (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x2000)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" if (parenthesized_expression "((bVar19 & 0x40) != 0)" ( (binary_expression "(bVar19 & 0x40) != 0" (parenthesized_expression "(bVar19 & 0x40)" ( (binary_expression "bVar19 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x184)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00091c50,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;) })) (expression_statement "iVar5 = DAT_00091c58;" (assignment_expression "iVar5 = DAT_00091c58" identifier = identifier) ;) (if_statement "if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00091c26 & 0x20) != 0)" ( (binary_expression "(DAT_00091c26 & 0x20) != 0" (parenthesized_expression "(DAT_00091c26 & 0x20)" ( (binary_expression "DAT_00091c26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" { (for_statement "for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" for ( ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = *(int *)(iVar5 + 0x98)" identifier = (pointer_expression "*(int *)(iVar5 + 0x98)" * (cast_expression "(int *)(iVar5 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" { (expression_statement "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20)" identifier = (call_expression "bfd_link_check_relocs(iVar5,&DAT_00091c20)" identifier (argument_list "(iVar5,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00091d24 = 0;\n      }" { (expression_statement "DAT_00091d24 = 0;" (assignment_expression "DAT_00091d24 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_0002ff90();" (call_expression "FUN_0002ff90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar26 = (int *)0x0;" (assignment_expression "piVar26 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0001e040();" (call_expression "FUN_0001e040()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025680();" (call_expression "FUN_00025680()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar24 = (int *)*DAT_00091be0;" (assignment_expression "piVar24 = (int *)*DAT_00091be0" identifier = (cast_expression "(int *)*DAT_00091be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00091be0" * identifier))) ;) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }" { (labeled_statement "LAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" statement_identifier : (if_statement "if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" if (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" { (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar26[0x12]" number_literal - (subscript_expression "piVar26[0x12]" identifier [ number_literal ]))) ;) (while_statement "while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" while (parenthesized_expression "((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)))" ( (parenthesized_expression "(piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))" ( (binary_expression "piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" (binary_expression "piVar23 != piVar26" identifier != identifier) && (parenthesized_expression "(piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" ( (comma_expression "piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0" (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" { (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar26[0x12]" number_literal - (subscript_expression "piVar26[0x12]" identifier [ number_literal ]))) ;) })) }))) }) (else_clause "else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" else (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" { (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = DAT_00091be0;" (assignment_expression "piVar29 = DAT_00091be0" identifier = identifier) ;) (while_statement "while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" while (parenthesized_expression "(piVar14 = piVar24, piVar24[1] == 0)" ( (comma_expression "piVar14 = piVar24, piVar24[1] == 0" (assignment_expression "piVar14 = piVar24" identifier = identifier) , (binary_expression "piVar24[1] == 0" (subscript_expression "piVar24[1]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" { (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" if (parenthesized_expression "((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4]))" ( (binary_expression "(piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])" (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar24 != (int *)piVar23[4])" ( (binary_expression "piVar24 != (int *)piVar23[4]" identifier != (cast_expression "(int *)piVar23[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[4]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar14 = (int *)*piVar29;" (assignment_expression "piVar14 = (int *)*piVar29" identifier = (cast_expression "(int *)*piVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier))) ;) })) (expression_statement "piVar24[0x12] = -2 - piVar24[0x12];" (assignment_expression "piVar24[0x12] = -2 - piVar24[0x12]" (subscript_expression "piVar24[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar24[0x12]" number_literal - (subscript_expression "piVar24[0x12]" identifier [ number_literal ]))) ;) (expression_statement "piVar23 = piVar24;" (assignment_expression "piVar23 = piVar24" identifier = identifier) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (if_statement "if (piVar27 != (int *)0x0) goto LAB_0002855a;" if (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002855a;" goto statement_identifier ;)) (labeled_statement "LAB_0002855c:\n      piVar24 = (int *)*piVar14;" statement_identifier : (expression_statement "piVar24 = (int *)*piVar14;" (assignment_expression "piVar24 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;)) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" identifier = identifier) ;) (expression_statement "piVar29 = piVar14;" (assignment_expression "piVar29 = piVar14" identifier = identifier) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028564;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00028564;" goto statement_identifier ;)) })) (if_statement "if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "(piVar24[1] != 0xe)" ( (binary_expression "piVar24[1] != 0xe" (subscript_expression "piVar24[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" { (labeled_statement "LAB_0002855a:\n      piVar26 = piVar27;" statement_identifier : (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;)) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_00022cf0(piVar24[2],0,0);" (assignment_expression "iVar5 = FUN_00022cf0(piVar24[2],0,0)" identifier = (call_expression "FUN_00022cf0(piVar24[2],0,0)" identifier (argument_list "(piVar24[2],0,0)" ( (subscript_expression "piVar24[2]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" { (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" if (parenthesized_expression "(piVar24[3] != 0)" ( (binary_expression "piVar24[3] != 0" (subscript_expression "piVar24[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" { (do_statement "do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);" do (compound_statement "{\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        }" { (expression_statement "iVar5 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00028636;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028636;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(iVar5 + 0x48) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x48) < 0" (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = piVar27[5];" (assignment_expression "iVar9 = piVar27[5]" identifier = (subscript_expression "piVar27[5]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar23[4];" (assignment_expression "iVar8 = piVar23[4]" identifier = (subscript_expression "piVar23[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar9 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }" { (expression_statement "DAT_00091be4 = (int *)(iVar9 + 0x10);" (assignment_expression "DAT_00091be4 = (int *)(iVar9 + 0x10)" identifier = (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) goto LAB_00028f0d;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00028f0d;" goto statement_identifier ;)) (labeled_statement "LAB_00029143:\n          DAT_00091be4 = piVar23 + 4;" statement_identifier : (expression_statement "DAT_00091be4 = piVar23 + 4;" (assignment_expression "DAT_00091be4 = piVar23 + 4" identifier = (binary_expression "piVar23 + 4" identifier + number_literal)) ;)) }) (else_clause "else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" else (compound_statement "{\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" { (expression_statement "*(int *)(iVar8 + 0x14) = iVar9;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar9" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00029143;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029143;" goto statement_identifier ;)) (labeled_statement "LAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;" statement_identifier : (expression_statement "*(int **)(iVar9 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar9 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar9 + 0x14)" * (cast_expression "(int **)(iVar9 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "piVar27[5] = iVar5;" (assignment_expression "piVar27[5] = iVar5" (subscript_expression "piVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "*(int **)(iVar5 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar5 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar5 + 0x10)" * (cast_expression "(int **)(iVar5 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));" do (compound_statement "{\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        }" { (expression_statement "piVar27[0x12] = -2 - piVar27[0x12];" (assignment_expression "piVar27[0x12] = -2 - piVar27[0x12]" (subscript_expression "piVar27[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar27[0x12]" number_literal - (subscript_expression "piVar27[0x12]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = piVar27[7];" (assignment_expression "iVar25 = piVar27[7]" identifier = (subscript_expression "piVar27[7]" identifier [ number_literal ])) ;) (if_statement "if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }" if (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0))" ( (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0))" ( (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" * (cast_expression "(int *)(iVar25 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x94)" ( (binary_expression "iVar25 + 0x94" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar8 = iVar25, iVar9 == 0)" ( (comma_expression "iVar8 = iVar25, iVar9 == 0" (assignment_expression "iVar8 = iVar25" identifier = identifier) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            iVar9 = iVar25;\n          }" { (expression_statement "iVar9 = iVar25;" (assignment_expression "iVar9 = iVar25" identifier = identifier) ;) })) }) while (parenthesized_expression "((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0))" ( (binary_expression "(piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" (parenthesized_expression "(piVar23 != piVar27)" ( (binary_expression "piVar23 != piVar27" identifier != identifier) )) && (parenthesized_expression "(piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" ( (comma_expression "piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0" (assignment_expression "piVar27 = (int *)piVar27[4]" identifier = (cast_expression "(int *)piVar27[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[4]" identifier [ number_literal ]))) , (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar5 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)(iVar5 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar5 + 0x14)" identifier = (pointer_expression "*(int **)(iVar5 + 0x14)" * (cast_expression "(int **)(iVar5 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" if (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);" do (compound_statement "{\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              }" { (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;" if (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0))" ( (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0))" ( (binary_expression "(-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)" (parenthesized_expression "(-1 < piVar27[0x12])" ( (binary_expression "-1 < piVar27[0x12]" number_literal < (subscript_expression "piVar27[0x12]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar25 = piVar27[7], iVar25 != 0)" ( (comma_expression "iVar25 = piVar27[7], iVar25 != 0" (assignment_expression "iVar25 = piVar27[7]" identifier = (subscript_expression "piVar27[7]" identifier [ number_literal ])) , (binary_expression "iVar25 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" * (cast_expression "(int *)(iVar25 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x94)" ( (binary_expression "iVar25 + 0x94" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00028f6a;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)piVar27[5];" (assignment_expression "piVar27 = (int *)piVar27[5]" identifier = (cast_expression "(int *)piVar27[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[5]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" else (compound_statement "{\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" { (labeled_statement "LAB_00028f6a:\n            piVar27 = (int *)0x0;" statement_identifier : (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" if (parenthesized_expression "(iVar25 != iVar8)" ( (binary_expression "iVar25 != iVar8" identifier != identifier) )) (compound_statement "{\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" { (expression_statement "iVar5 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" identifier = (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00091c50 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" * (cast_expression "(int *)(DAT_00091c50 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" else (compound_statement "{\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" { (expression_statement "*(int *)(iVar5 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" identifier = (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar5;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar5" (pointer_expression "*(int *)(DAT_00091c50 + 100)" * (cast_expression "(int *)(DAT_00091c50 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 100)" ( (binary_expression "DAT_00091c50 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" else (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" { (expression_statement "*(int *)(iVar28 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar25 + 0xc)" identifier = (pointer_expression "*(int *)(iVar25 + 0xc)" * (cast_expression "(int *)(iVar25 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar8 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar8 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar8;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar8" (pointer_expression "*(int *)(DAT_00091c50 + 100)" * (cast_expression "(int *)(DAT_00091c50 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 100)" ( (binary_expression "DAT_00091c50 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" else (compound_statement "{\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" { (expression_statement "*(int *)(iVar5 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int *)(iVar9 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(iVar25 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar25 + 0xc)" * (cast_expression "(int *)(iVar25 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) )))) = identifier) ;) })) }))) })) })) (expression_statement "piVar24 = (int *)FUN_0001dd70();" (assignment_expression "piVar24 = (int *)FUN_0001dd70()" identifier = (cast_expression "(int *)FUN_0001dd70()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001dd70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar5 = *DAT_00091be0;" (assignment_expression "iVar5 = *DAT_00091be0" identifier = (pointer_expression "*DAT_00091be0" * identifier)) ;) (expression_statement "*DAT_00091be0 = *(int *)*piVar29;" (assignment_expression "*DAT_00091be0 = *(int *)*piVar29" (pointer_expression "*DAT_00091be0" * identifier) = (pointer_expression "*(int *)*piVar29" * (cast_expression "(int *)*piVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier)))) ;) (expression_statement "iVar9 = *piVar24;" (assignment_expression "iVar9 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar29 = iVar9;" (assignment_expression "*piVar29 = iVar9" (pointer_expression "*piVar29" * identifier) = identifier) ;) (if_statement "if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0009184c = piVar29;\n      }" { (expression_statement "DAT_0009184c = piVar29;" (assignment_expression "DAT_0009184c = piVar29" identifier = identifier) ;) })) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;) (expression_statement "piVar14 = DAT_00091be0;" (assignment_expression "piVar14 = DAT_00091be0" identifier = identifier) ;) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (labeled_statement "LAB_00028636:\n    iVar5 = piVar24[2];" statement_identifier : (expression_statement "iVar5 = piVar24[2];" (assignment_expression "iVar5 = piVar24[2]" identifier = (subscript_expression "piVar24[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier (argument_list "(0,"%F%P: %s not found for insert\n",5)" ( number_literal , (string_literal ""%F%P: %s not found for insert\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,iVar5);" (call_expression "FUN_00031760(uVar6,iVar5)" identifier (argument_list "(uVar6,iVar5)" ( identifier , identifier ))) ;) }))) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal)) ;) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar13 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(piVar24[4] + 0x60)" identifier = (pointer_expression "*(undefined4 **)(piVar24[4] + 0x60)" * (cast_expression "(undefined4 **)(piVar24[4] + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24[4] + 0x60)" ( (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "joined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      }" { (if_statement "if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" if (parenthesized_expression "(puVar13[0xf] == 0)" ( (binary_expression "puVar13[0xf] == 0" (subscript_expression "puVar13[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" { (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;" if (parenthesized_expression "((*(byte *)(piVar24 + 9) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar24 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar24 + 9) & 0x10)" ( (binary_expression "*(byte *)(piVar24 + 9) & 0x10" (pointer_expression "*(byte *)(piVar24 + 9)" * (cast_expression "(byte *)(piVar24 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24 + 9)" ( (binary_expression "piVar24 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000286ac;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_0001eff0();" (assignment_expression "iVar5 = FUN_0001eff0()" identifier = (call_expression "FUN_0001eff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar32 = iVar5 == 0;" (assignment_expression "bVar32 = iVar5 == 0" identifier = (binary_expression "iVar5 == 0" identifier == number_literal)) ;) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }" { (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" identifier = (cast_expression "(byte *)*puVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar30 = (byte *)"COMMON";" (assignment_expression "pbVar30 = (byte *)"COMMON"" identifier = (cast_expression "(byte *)"COMMON"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""COMMON"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" identifier = (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" identifier = (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (if_statement "if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" if (parenthesized_expression "((!bVar31 && !bVar32) == bVar31)" ( (binary_expression "(!bVar31 && !bVar32) == bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" ( (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) == identifier) )) (compound_statement "{\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }" { (if_statement "if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" if (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0))" ( (binary_expression "(((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_00091cc0 != 0)" ( (binary_expression "DAT_00091cc0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" { (if_statement "if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" if (parenthesized_expression "(DAT_0009185c == 0)" ( (binary_expression "DAT_0009185c == 0" identifier == number_literal) )) (compound_statement "{\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" { (expression_statement "DAT_0009185c = FUN_00022cf0(".bss",0,1);" (assignment_expression "DAT_0009185c = FUN_00022cf0(".bss",0,1)" identifier = (call_expression "FUN_00022cf0(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) })) (expression_statement "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);" (call_expression "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" identifier (argument_list "(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" ( (binary_expression "DAT_0009185c + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" else (if_statement "if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" if (parenthesized_expression "(DAT_00091d3c == 1)" ( (binary_expression "DAT_00091d3c == 1" identifier == number_literal) )) (compound_statement "{\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }" { (expression_statement "iVar5 = FUN_00022cf0("/DISCARD/",0,1);" (assignment_expression "iVar5 = FUN_00022cf0("/DISCARD/",0,1)" identifier = (call_expression "FUN_00022cf0("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" if (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" ( (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" { (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" identifier = (call_expression "FUN_0002f3c0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" identifier (argument_list "(iVar5 + 8,puVar13,0,iVar5)" ( (binary_expression "iVar5 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" else (compound_statement "{\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" { (if_statement "if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" if (parenthesized_expression "(DAT_00091d3c == 3)" ( (binary_expression "DAT_00091d3c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" { (expression_statement "uVar6 = puVar13[0x25];" (assignment_expression "uVar6 = puVar13[0x25]" identifier = (subscript_expression "puVar13[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" identifier (argument_list "(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" ( number_literal , (string_literal ""%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,puVar13,uVar6);" (call_expression "FUN_00031760(uVar12,puVar13,uVar6)" identifier (argument_list "(uVar12,puVar13,uVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }" if (parenthesized_expression "((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0))" ( (binary_expression "(DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)" (parenthesized_expression "(DAT_00091d58 == 0)" ( (binary_expression "DAT_00091d58 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_00020cd0(), iVar5 == 0)" ( (comma_expression "iVar5 = FUN_00020cd0(), iVar5 == 0" (assignment_expression "iVar5 = FUN_00020cd0()" identifier = (call_expression "FUN_00020cd0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar6 = 0;\n              }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar6 = 0x17e;\n              }" else (compound_statement "{\n                uVar6 = 0x17e;\n              }" { (expression_statement "uVar6 = 0x17e;" (assignment_expression "uVar6 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);" (assignment_expression "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6)" identifier = (call_expression "FUN_000300e0(puVar13,pbVar3,uVar6)" identifier (argument_list "(puVar13,pbVar3,uVar6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" { (expression_statement "iVar5 = FUN_00022cf0(pbVar3,uVar6,1);" (assignment_expression "iVar5 = FUN_00022cf0(pbVar3,uVar6,1)" identifier = (call_expression "FUN_00022cf0(pbVar3,uVar6,1)" identifier (argument_list "(pbVar3,uVar6,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" if (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" ( (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" { (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" identifier = (call_expression "FUN_0002f3c0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" identifier (argument_list "(iVar5 + 8,puVar13,0,iVar5)" ( (binary_expression "iVar5 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) (if_statement "if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" if (parenthesized_expression "(DAT_00091d3c == 2)" ( (binary_expression "DAT_00091d3c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" { (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = puVar13[0x25];" (assignment_expression "uVar12 = puVar13[0x25]" identifier = (subscript_expression "puVar13[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" identifier = (call_expression "dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" ( number_literal , (string_literal ""%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,puVar13,uVar12,uVar6);" (call_expression "FUN_00031760(uVar18,puVar13,uVar12,uVar6)" identifier (argument_list "(uVar18,puVar13,uVar12,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            puVar13[0xf] = puVar15;\n          }" else (compound_statement "{\n            puVar13[0xf] = puVar15;\n          }" { (expression_statement "puVar13[0xf] = puVar15;" (assignment_expression "puVar13[0xf] = puVar15" (subscript_expression "puVar13[0xf]" identifier [ number_literal ]) = identifier) ;) }))) })) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) (if_statement "if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" if (parenthesized_expression "(bVar19 != 2)" ( (binary_expression "bVar19 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18c)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00091c50,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;) (expression_statement "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");" (assignment_expression "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_00091c50,".text")" identifier (argument_list "(DAT_00091c50,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }" { (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }) (else_clause "else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" else (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" { (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" if (parenthesized_expression "(DAT_00091d50 == 0)" ( (binary_expression "DAT_00091d50 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" else (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" for ( ; (comma_expression "DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_000917cc = piVar24" identifier = identifier) , (comma_expression "DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_00091c50 = iVar5" identifier = identifier) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" { (expression_statement "iVar5 = piVar26[5];" (assignment_expression "iVar5 = piVar26[5]" identifier = (subscript_expression "piVar26[5]" identifier [ number_literal ])) ;) (if_statement "if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" if (parenthesized_expression "((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))))" ( (binary_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" (parenthesized_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" ( (binary_expression "((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar5 != 0) && (piVar26[9] == 0))" ( (binary_expression "(iVar5 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar26[9] == 0)" ( (binary_expression "piVar26[9] == 0" (subscript_expression "piVar26[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(piVar26[0xc] == 0)" ( (binary_expression "piVar26[0xc] == 0" (subscript_expression "piVar26[0xc]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" ( (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))" ( (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(piVar26[8] == *(int *)(iVar5 + 0x20))" ( (binary_expression "piVar26[8] == *(int *)(iVar5 + 0x20)" (subscript_expression "piVar26[8]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" { (expression_statement "piVar26[9] = *(int *)(iVar5 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar5 + 0x24)" (subscript_expression "piVar26[9]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) })) (if_statement "if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "((DAT_00091d2c != 0) && (DAT_000917c8 != 0))" ( (binary_expression "(DAT_00091d2c != 0) && (DAT_000917c8 != 0)" (parenthesized_expression "(DAT_00091d2c != 0)" ( (binary_expression "DAT_00091d2c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000917c8 != 0)" ( (binary_expression "DAT_000917c8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar26 = piVar24 + DAT_000917c8;" (assignment_expression "piVar26 = piVar24 + DAT_000917c8" identifier = (binary_expression "piVar24 + DAT_000917c8" identifier + identifier)) ;) (do_statement "do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    }" { (while_statement "while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" while (parenthesized_expression "(iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0)" ( (comma_expression "iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0" (assignment_expression "iVar9 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) , (binary_expression "(*(byte *)(iVar9 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xd) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0xd) & 8" (pointer_expression "*(byte *)(iVar9 + 0xd)" * (cast_expression "(byte *)(iVar9 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xd)" ( (binary_expression "iVar9 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" { (expression_statement "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];" (assignment_expression "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(iVar9 + 0x14))[0xf]" (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x14))" ( (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" * (cast_expression "(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" if (parenthesized_expression "(((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0))" ( (binary_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar13[0x25] != iVar5)" ( (binary_expression "puVar13[0x25] != iVar5" (subscript_expression "puVar13[0x25]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0" (assignment_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" identifier = (call_expression "strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" identifier (argument_list "((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" ( (cast_expression "(char *)**(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar9 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" * (cast_expression "(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" { (expression_statement "*(undefined1 *)(iVar9 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xc)" * (cast_expression "(undefined1 *)(iVar9 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) (if_statement "if (piVar24 == piVar26) goto LAB_000288f7;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_000288f7;" goto statement_identifier ;)) })) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 != piVar26)" ( (binary_expression "piVar24 != piVar26" identifier != identifier) )) ;) })) (labeled_statement "LAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" statement_identifier : (if_statement "if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" if (parenthesized_expression "(bVar19 != 2)" ( (binary_expression "bVar19 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" { (for_statement "for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" for ( (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" { (expression_statement "pcVar10 = (char *)*puVar13;" (assignment_expression "pcVar10 = (char *)*puVar13" identifier = (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" identifier = (call_expression "strlen(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar7 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 10)" identifier (argument_list "(sVar7 + 10)" ( (binary_expression "sVar7 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar11,".startof.%s",pcVar10);" (call_expression "sprintf(pcVar11,".startof.%s",pcVar10)" identifier (argument_list "(pcVar11,".startof.%s",pcVar10)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "builtin_strncpy(pcVar11 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar11 + 1,".size",5)" identifier (argument_list "(pcVar11 + 1,".size",5)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) }))) (expression_statement "FUN_0002ffd0();" (call_expression "FUN_0002ffd0()" identifier (argument_list "()" ( ))) ;) (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 "local_4c = (void *)xmalloc(0x28);" (assignment_expression "local_4c = (void *)xmalloc(0x28)" identifier = (cast_expression "(void *)xmalloc(0x28)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "local_44 = 10;" (assignment_expression "local_44 = 10" identifier = number_literal) ;) (for_statement "for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" for ( (assignment_expression "puVar13 = DAT_00091bd8" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" { (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" for ( (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ; (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) ) (compound_statement "{\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < piVar26[0x12])" ( (binary_expression "-1 < piVar26[0x12]" number_literal < (subscript_expression "piVar26[0x12]" identifier [ number_literal ])) )) (compound_statement "{\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" { (expression_statement "piVar23 = (int *)piVar26[0xe];" (assignment_expression "piVar23 = (int *)piVar26[0xe]" identifier = (cast_expression "(int *)piVar26[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[0xe]" identifier [ number_literal ]))) ;) (if_statement "if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }" { (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" if (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))))" ( (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" (parenthesized_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0))" ( (binary_expression "(piVar26[0x14] != 2) && (piVar26[7] != 0)" (parenthesized_expression "(piVar26[0x14] != 2)" ( (binary_expression "piVar26[0x14] != 2" (subscript_expression "piVar26[0x14]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar26[7] != 0)" ( (binary_expression "piVar26[7] != 0" (subscript_expression "piVar26[7]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" ( (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))" ( (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar26[7] + 0x14) & 1)" ( (binary_expression "*(byte *)(piVar26[7] + 0x14) & 1" (pointer_expression "*(byte *)(piVar26[7] + 0x14)" * (cast_expression "(byte *)(piVar26[7] + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[7] + 0x14)" ( (binary_expression "piVar26[7] + 0x14" (subscript_expression "piVar26[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" ( (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar27 = piVar26" identifier = identifier) , (comma_expression "piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar23 = piVar24" identifier = identifier) , (binary_expression "puVar13[2] != 3" (subscript_expression "puVar13[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" { (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" { (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" identifier = identifier) ;) (if_statement "if (piVar23 != (int *)0x0) goto LAB_000289ba;" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000289ba;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)piVar27[4];" (assignment_expression "piVar27 = (int *)piVar27[4]" identifier = (cast_expression "(int *)piVar27[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[4]" identifier [ number_literal ]))) ;) (if_statement "if (piVar27 == (int *)0x0) break;" if (parenthesized_expression "(piVar27 == (int *)0x0)" ( (binary_expression "piVar27 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar23 = (int *)piVar27[0xe];" (assignment_expression "piVar23 = (int *)piVar27[0xe]" identifier = (cast_expression "(int *)piVar27[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[0xe]" 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 "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier (argument_list "(0,"%F%P: no sections assigned to phdrs\n",5)" ( number_literal , (string_literal ""%F%P: no sections assigned to phdrs\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) }) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" else (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" { (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" identifier = identifier) ;) (expression_statement "piVar27 = (int *)piVar26[7];" (assignment_expression "piVar27 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (while_statement "while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" { (labeled_statement "LAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" statement_identifier : (expression_statement "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" (assignment_expression "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1])" identifier = (call_expression "strcmp((char *)piVar23[1],(char *)puVar13[1])" identifier (argument_list "((char *)piVar23[1],(char *)puVar13[1])" ( (cast_expression "(char *)piVar23[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar13[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar21 = local_44;" (assignment_expression "uVar21 = local_44" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" { (if_statement "if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_50)" ( (binary_expression "local_44 <= local_50" identifier <= identifier) )) (compound_statement "{\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" { (expression_statement "uVar21 = local_44 * 2;" (assignment_expression "uVar21 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_4c = (void *)xrealloc(local_4c,local_44 << 3);" (assignment_expression "local_4c = (void *)xrealloc(local_4c,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_4c,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_4c,local_44 << 3)" identifier (argument_list "(local_4c,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_4c + (int)local_50 * 4)" * (cast_expression "(int *)((int)local_4c + (int)local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4c + (int)local_50 * 4)" ( (binary_expression "(int)local_4c + (int)local_50 * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_50 * 4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "local_50 = (int *)((int)local_50 + 1);" (assignment_expression "local_50 = (int *)((int)local_50 + 1)" identifier = (cast_expression "(int *)((int)local_50 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + 1)" ( (binary_expression "(int)local_50 + 1" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar23[2] = 1;" (assignment_expression "piVar23[2] = 1" (subscript_expression "piVar23[2]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "piVar23 = (int *)*piVar23;" (assignment_expression "piVar23 = (int *)*piVar23" identifier = (cast_expression "(int *)*piVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "local_44 = uVar21;" (assignment_expression "local_44 = uVar21" identifier = identifier) ;) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" if (parenthesized_expression "(puVar13[6] != 0)" ( (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" { (expression_statement "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");" (assignment_expression "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags")" identifier = (call_expression "FUN_0002fba0(puVar13[6],0,"phdr flags")" identifier (argument_list "(puVar13[6],0,"phdr flags")" ( (subscript_expression "puVar13[6]" identifier [ number_literal ]) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" { (expression_statement "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");" (assignment_expression "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address")" identifier = (call_expression "FUN_0002fba0(iVar5,0,"phdr load address")" identifier (argument_list "(iVar5,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);" (assignment_expression "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" identifier = (call_expression "bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" identifier (argument_list "(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" ( identifier , (subscript_expression "puVar13[2]" identifier [ number_literal ]) , (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "iVar5 != 0" identifier != number_literal) , identifier , (subscript_expression "puVar13[3]" identifier [ number_literal ]) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_record_phdr failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_record_phdr failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) })) (expression_statement "free(local_4c);" (call_expression "free(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (for_statement "for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_00091be0" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[4]" identifier = (cast_expression "(int *)piVar24[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < piVar24[0x12]) && (piVar24[7] != 0))" ( (binary_expression "(-1 < piVar24[0x12]) && (piVar24[7] != 0)" (parenthesized_expression "(-1 < piVar24[0x12])" ( (binary_expression "-1 < piVar24[0x12]" number_literal < (subscript_expression "piVar24[0x12]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar24[7] != 0)" ( (binary_expression "piVar24[7] != 0" (subscript_expression "piVar24[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "piVar26 = (int *)piVar24[0xe];" (assignment_expression "piVar26 = (int *)piVar24[0xe]" identifier = (cast_expression "(int *)piVar24[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[0xe]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" { (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar32 = piVar26[2] == 0;" (assignment_expression "bVar32 = piVar26[2] == 0" identifier = (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" { (expression_statement "pbVar3 = (byte *)piVar26[1];" (assignment_expression "pbVar3 = (byte *)piVar26[1]" identifier = (cast_expression "(byte *)piVar26[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar30 = (byte *)0x3d35d;" (assignment_expression "pbVar30 = (byte *)0x3d35d" identifier = (cast_expression "(byte *)0x3d35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" identifier = (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" identifier = (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (if_statement "if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;" if (parenthesized_expression "((!bVar31 && !bVar32) != bVar31)" ( (binary_expression "(!bVar31 && !bVar32) != bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" ( (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00028b27;" goto statement_identifier ;)) })) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (if_statement "if (piVar26 == (int *)0x0) break;" if (parenthesized_expression "(piVar26 == (int *)0x0)" ( (binary_expression "piVar26 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2))" ( (binary_expression "((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)" (parenthesized_expression "((DAT_00091c20._3_1_ & 0x10) != 0)" ( (binary_expression "(DAT_00091c20._3_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 0x10)" ( (binary_expression "DAT_00091c20._3_1_ & 0x10" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" { (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00025980();" (call_expression "FUN_00025980()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" if (parenthesized_expression "(local_20[0] == (char *)0x0)" ( (binary_expression "local_20[0] == (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" { (expression_statement "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;" (assignment_expression "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) = (binary_expression "DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "FUN_00026140(0,1 < DAT_00091c34);" (call_expression "FUN_00026140(0,1 < DAT_00091c34)" identifier (argument_list "(0,1 < DAT_00091c34)" ( number_literal , (binary_expression "1 < DAT_00091c34" number_literal < identifier) ))) ;) (expression_statement "FUN_0002ffb0();" (call_expression "FUN_0002ffb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) (expression_statement "uVar6 = DAT_0009180c;" (assignment_expression "uVar6 = DAT_0009180c" identifier = identifier) ;) (if_statement "if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "(DAT_000917c8 != 0)" ( (binary_expression "DAT_000917c8 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar24 = DAT_000917cc + DAT_000917c8;" (assignment_expression "piVar24 = DAT_000917cc + DAT_000917c8" identifier = (binary_expression "DAT_000917cc + DAT_000917c8" identifier + identifier)) ;) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal)) ;) (expression_statement "piVar26 = DAT_000917cc;" (assignment_expression "piVar26 = DAT_000917cc" identifier = identifier) ;) (do_statement "do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    }" { (while_statement "while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" while (parenthesized_expression "(iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3)" ( (comma_expression "iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar9 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) , (binary_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff)" ( (binary_expression "*(ushort *)(iVar9 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar9 + 0xc)" * (cast_expression "(ushort *)(iVar9 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" { (expression_statement "pcVar10 = *(char **)(iVar9 + 4);" (assignment_expression "pcVar10 = *(char **)(iVar9 + 4)" identifier = (pointer_expression "*(char **)(iVar9 + 4)" * (cast_expression "(char **)(iVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_4c._0_1_ = (byte)uVar6;" (assignment_expression "local_4c._0_1_ = (byte)uVar6" (field_expression "local_4c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar10 != '.')" ( (binary_expression "*pcVar10 != '.'" (pointer_expression "*pcVar10" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" { (expression_statement "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(iVar5 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(iVar5 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar5 + 4) + 0x18" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar9 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" if (parenthesized_expression "(pcVar10[(cVar4 != '\0') + 4] == 'o')" ( (binary_expression "pcVar10[(cVar4 != '\0') + 4] == 'o'" (subscript_expression "pcVar10[(cVar4 != '\0') + 4]" identifier [ (binary_expression "(cVar4 != '\0') + 4" (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" { (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar10[2] != 'i') break;" if (parenthesized_expression "(pcVar10[2] != 'i')" ( (binary_expression "pcVar10[2] != 'i'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" * (cast_expression "(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x24)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x24" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) )))) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "*(undefined **)(iVar9 + 0x14) = puVar15;" (assignment_expression "*(undefined **)(iVar9 + 0x14) = puVar15" (pointer_expression "*(undefined **)(iVar9 + 0x14)" * (cast_expression "(undefined **)(iVar9 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar24 == piVar26) goto LAB_00028c60;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_00028c60;" goto statement_identifier ;)) })) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 != piVar26)" ( (binary_expression "piVar24 != piVar26" identifier != identifier) )) ;) })) (labeled_statement "LAB_00028c60:\n  FUN_00024940(4);" statement_identifier : (expression_statement "FUN_00024940(4);" (call_expression "FUN_00024940(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00030010();" (call_expression "FUN_00030010()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0002fea0();" (call_expression "FUN_0002fea0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) (if_statement "if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" if (parenthesized_expression "(DAT_00091cd8 != '\0')" ( (binary_expression "DAT_00091cd8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" { (expression_statement "cVar4 = bfd_arch_bits_per_address(DAT_00091c50);" (assignment_expression "cVar4 = bfd_arch_bits_per_address(DAT_00091c50)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_00091c50)" identifier (argument_list "(DAT_00091c50)" ( identifier )))) ;) (expression_statement "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;" (assignment_expression "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1" identifier = (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2 - 1" (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2" (parenthesized_expression "(1 << (cVar4 - 1U & 0x1f))" ( (binary_expression "1 << (cVar4 - 1U & 0x1f)" number_literal << (parenthesized_expression "(cVar4 - 1U & 0x1f)" ( (binary_expression "cVar4 - 1U & 0x1f" (binary_expression "cVar4 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      }" { (if_statement "if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" if (parenthesized_expression "((*(byte *)(puVar13 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 1)" ( (binary_expression "*(byte *)(puVar13 + 5) & 1" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" { (expression_statement "uVar22 = puVar13[7] + puVar13[9] & uVar21;" (assignment_expression "uVar22 = puVar13[7] + puVar13[9] & uVar21" identifier = (binary_expression "puVar13[7] + puVar13[9] & uVar21" (binary_expression "puVar13[7] + puVar13[9]" (subscript_expression "puVar13[7]" identifier [ number_literal ]) + (subscript_expression "puVar13[9]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22))" ( (binary_expression "(uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar13[7] & uVar21) <= uVar22)" ( (binary_expression "(puVar13[7] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[7] & uVar21)" ( (binary_expression "puVar13[7] & uVar21" (subscript_expression "puVar13[7]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar22 = puVar13[9] + puVar13[8] & uVar21;" (assignment_expression "uVar22 = puVar13[9] + puVar13[8] & uVar21" identifier = (binary_expression "puVar13[9] + puVar13[8] & uVar21" (binary_expression "puVar13[9] + puVar13[8]" (subscript_expression "puVar13[9]" identifier [ number_literal ]) + (subscript_expression "puVar13[8]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;" if (parenthesized_expression "((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22))" ( (binary_expression "(uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar13[8] & uVar21) <= uVar22)" ( (binary_expression "(puVar13[8] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[8] & uVar21)" ( (binary_expression "puVar13[8] & uVar21" (subscript_expression "puVar13[8]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_000296b0;" goto statement_identifier ;)) (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar10 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s LMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s LMA wraps around address space\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar10 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s VMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s VMA wraps around address space\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar12 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar10,5)" identifier = (call_expression "dcgettext(0,pcVar10,5)" identifier (argument_list "(0,pcVar10,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];" statement_identifier : (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_00091c50 + 0x68))" ( (binary_expression "1 < *(uint *)(DAT_00091c50 + 0x68)" number_literal < (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" * (cast_expression "(uint *)(DAT_00091c50 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" { (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" identifier = (cast_expression "(int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" identifier (argument_list "(*(uint *)(DAT_00091c50 + 0x68) << 3)" ( (binary_expression "*(uint *)(DAT_00091c50 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" * (cast_expression "(uint *)(DAT_00091c50 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(DAT_00091c50 + 0x60);" (assignment_expression "iVar5 = *(int *)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" * (cast_expression "(int *)(DAT_00091c50 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" { (do_statement "do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);" do (compound_statement "{\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        }" { (if_statement "if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" if (parenthesized_expression "((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0))" ( (binary_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 1" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" { (expression_statement "iVar9 = uVar21 * 2;" (assignment_expression "iVar9 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar24[iVar9] = iVar5;" (assignment_expression "piVar24[iVar9] = iVar5" (subscript_expression "piVar24[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "(piVar24 + iVar9)[1] = 0;" (assignment_expression "(piVar24 + iVar9)[1] = 0" (subscript_expression "(piVar24 + iVar9)[1]" (parenthesized_expression "(piVar24 + iVar9)" ( (binary_expression "piVar24 + iVar9" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar5 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" if (parenthesized_expression "(1 < uVar21)" ( (binary_expression "1 < uVar21" number_literal < identifier) )) (compound_statement "{\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" { (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de50);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de50)" identifier (argument_list "(piVar24,uVar21,8,FUN_0001de50)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (undefined4 *)0x0;" (assignment_expression "local_50 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (do_statement "do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);" do (compound_statement "{\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          }" { (expression_statement "puVar20 = (undefined4 *)*piVar26;" (assignment_expression "puVar20 = (undefined4 *)*piVar26" identifier = (cast_expression "(undefined4 *)*piVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "piVar23 = local_50;" (assignment_expression "piVar23 = local_50" identifier = identifier) ;) (expression_statement "puVar13 = local_48;" (assignment_expression "puVar13 = local_48" identifier = identifier) ;) (expression_statement "uVar22 = local_44;" (assignment_expression "uVar22 = local_44" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar20 + 5) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar20 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar20 + 5) & 2)" ( (binary_expression "*(byte *)(puVar20 + 5) & 2" (pointer_expression "*(byte *)(puVar20 + 5)" * (cast_expression "(byte *)(puVar20 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" { (expression_statement "uVar22 = puVar20[8];" (assignment_expression "uVar22 = puVar20[8]" identifier = (subscript_expression "puVar20[8]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "(uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )) + (parenthesized_expression "((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar20[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar20[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "piVar23 = puVar20;" (assignment_expression "piVar23 = puVar20" identifier = identifier) ;) (if_statement "if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" if (parenthesized_expression "((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 )" ( (binary_expression "(local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))" (parenthesized_expression "(local_50 != (undefined4 *)0x0)" ( (binary_expression "local_50 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar22 <= local_48 || (local_48 < local_44)))" ( (parenthesized_expression "(uVar22 <= local_48 || (local_48 < local_44))" ( (binary_expression "uVar22 <= local_48 || (local_48 < local_44)" (binary_expression "uVar22 <= local_48" identifier <= identifier) || (parenthesized_expression "(local_48 < local_44)" ( (binary_expression "local_48 < local_44" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" { (expression_statement "uVar6 = *local_50;" (assignment_expression "uVar6 = *local_50" identifier = (pointer_expression "*local_50" * identifier)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" identifier = (call_expression "dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" identifier (argument_list "(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" ( number_literal , (string_literal ""%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);" (call_expression "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" identifier (argument_list "(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar26[1] = 1;" (assignment_expression "piVar26[1] = 1" (subscript_expression "piVar26[1]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_44 = uVar22;" (assignment_expression "local_44 = uVar22" identifier = identifier) ;) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" identifier = identifier) ;) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" identifier = identifier) ;) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + uVar21 * 2 != piVar26)" ( (binary_expression "piVar24 + uVar21 * 2 != piVar26" (binary_expression "piVar24 + uVar21 * 2" identifier + (binary_expression "uVar21 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de90);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de90)" identifier (argument_list "(piVar24,uVar21,8,FUN_0001de90)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)*piVar24;" (assignment_expression "puVar13 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" identifier = (cast_expression "(int *)puVar13[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (uint)piVar26;" (assignment_expression "uVar22 = (uint)piVar26" identifier = (cast_expression "(uint)piVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (do_statement "do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);" do (compound_statement "{\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          }" { (expression_statement "iVar5 = uVar16 * 2;" (assignment_expression "iVar5 = uVar16 * 2" identifier = (binary_expression "uVar16 * 2" identifier * number_literal)) ;) (if_statement "if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;" if (parenthesized_expression "(*(uint *)(piVar24[iVar5] + 0x1c) == uVar22)" ( (binary_expression "*(uint *)(piVar24[iVar5] + 0x1c) == uVar22" (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" * (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[iVar5] + 0x1c)" ( (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_000298a2;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);" (assignment_expression "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c)" identifier = (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" * (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[iVar5] + 0x1c)" ( (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar16 != uVar21)" ( (binary_expression "uVar16 != uVar21" identifier != identifier) )) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" ( (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )) + (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (while_statement "while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" while (parenthesized_expression "(local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21)" ( (comma_expression "local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_48 = puVar13" identifier = identifier) , (comma_expression "local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_4c = pvVar1" identifier = identifier) , (comma_expression "local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_50 = piVar26" identifier = identifier) , (comma_expression "uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) , (binary_expression "uVar22 != uVar21" identifier != identifier))))) )) (compound_statement "{\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" { (expression_statement "puVar13 = (undefined4 *)piVar24[uVar22 * 2];" (assignment_expression "puVar13 = (undefined4 *)piVar24[uVar22 * 2]" identifier = (cast_expression "(undefined4 *)piVar24[uVar22 * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[uVar22 * 2]" identifier [ (binary_expression "uVar22 * 2" identifier * number_literal) ]))) ;) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" identifier = (cast_expression "(int *)puVar13[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" ( (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )) + (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (if_statement "if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" if (parenthesized_expression "((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))" ( (binary_expression "(piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50)))" (parenthesized_expression "(piVar24[uVar22 * 2 + 1] == 0)" ( (binary_expression "piVar24[uVar22 * 2 + 1] == 0" (subscript_expression "piVar24[uVar22 * 2 + 1]" identifier [ (binary_expression "uVar22 * 2 + 1" (binary_expression "uVar22 * 2" identifier * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((piVar26 <= local_4c || (local_4c < local_50)))" ( (parenthesized_expression "(piVar26 <= local_4c || (local_4c < local_50))" ( (binary_expression "piVar26 <= local_4c || (local_4c < local_50)" (binary_expression "piVar26 <= local_4c" identifier <= identifier) || (parenthesized_expression "(local_4c < local_50)" ( (binary_expression "local_4c < local_50" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = *local_48;" (assignment_expression "uVar12 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" identifier = (call_expression "dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" identifier (argument_list "(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" ( number_literal , (string_literal ""%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);" (call_expression "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" identifier (argument_list "(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_000298a2:\n          free(piVar24);" statement_identifier : (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;)) (for_statement "for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" for ( (assignment_expression "puVar20 = DAT_000917ec" identifier = identifier) ; (comma_expression "puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) , (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar20 = (undefined4 *)puVar20[2]" identifier = (cast_expression "(undefined4 *)puVar20[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" { (if_statement "if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" if (parenthesized_expression "(puVar20[0xb] != 0)" ( (binary_expression "puVar20[0xb] != 0" (subscript_expression "puVar20[0xb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" { (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);" (assignment_expression "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4])" identifier = (binary_expression "puVar20[7] - (puVar20[5] + puVar20[4])" (subscript_expression "puVar20[7]" identifier [ number_literal ]) - (parenthesized_expression "(puVar20[5] + puVar20[4])" ( (binary_expression "puVar20[5] + puVar20[4]" (subscript_expression "puVar20[5]" identifier [ number_literal ]) + (subscript_expression "puVar20[4]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);" (assignment_expression "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" identifier = (call_expression "dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" ( number_literal , (string_literal ""%X%P: region `%s\' overflowed by %lu byte\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""%X%P: region `%s\' overflowed by %lu bytes\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6,iVar5);" (call_expression "FUN_00031760(uVar12,uVar6,iVar5)" identifier (argument_list "(uVar12,uVar6,iVar5)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x00028c93;" goto statement_identifier ;) })) })) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" statement_identifier : (for_statement "for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" for ( ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" { (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" identifier (argument_list "(DAT_00091c3c,*puVar13,0,0,1)" ( identifier , (pointer_expression "*puVar13" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" if (parenthesized_expression "((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)))" ( (binary_expression "(iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar5 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar5 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar5 + 0xc) - 3U" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier (argument_list "(0,"%X%P: required symbol `%s\' not defined\n",5)" ( number_literal , (string_literal ""%X%P: required symbol `%s\' not defined\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar5 = DAT_00091bbc;" (assignment_expression "iVar5 = DAT_00091bbc" identifier = identifier) ;) (if_statement "if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }" if (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3))" ( (binary_expression "(((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 0x43) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" ( (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 3)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 3" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) (if_statement "if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" if (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0))" ( (binary_expression "(((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) == 0x42)" ( (binary_expression "((byte)DAT_00091c20 & 0x43) == 0x42" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" ( (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_00091bbc == 0 && DAT_00091bb8 == 0)" ( (binary_expression "DAT_00091bbc == 0 && DAT_00091bb8 == 0" (binary_expression "DAT_00091bbc == 0" identifier == number_literal) && (binary_expression "DAT_00091bb8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" identifier (argument_list "(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" ( number_literal , (string_literal ""%F%P: gc-sections requires either an entry or an undefined symbol\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" if (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" ( (binary_expression "DAT_00091798 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" { (expression_statement "DAT_00091798 = PTR_s_start_00091360;" (assignment_expression "DAT_00091798 = PTR_s_start_00091360" identifier = identifier) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);" (assignment_expression "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" identifier (argument_list "(DAT_00091c3c,DAT_00091798,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" if (parenthesized_expression "((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar9 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar9 + 0xc) - 3U" (pointer_expression "*(char *)(iVar9 + 0xc)" * (cast_expression "(char *)(iVar9 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" { (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" { (expression_statement "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));" (assignment_expression "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" identifier (argument_list "(DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" ( identifier , (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar9 + 0x18)" * (cast_expression "(int *)(iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar5 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar10 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar10 = "%F%P: %s: can\'t set start address\n"" identifier = (string_literal ""%F%P: %s: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000290ef;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);" (assignment_expression "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0)" identifier = (call_expression "bfd_scan_vma(DAT_00091798,local_20,0)" identifier (argument_list "(DAT_00091798,local_20,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" if (parenthesized_expression "(*local_20[0] != '\0')" ( (binary_expression "*local_20[0] != '\0'" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" { (expression_statement "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);" (assignment_expression "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" identifier = (call_expression "bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" identifier (argument_list "(DAT_00091c50,PTR_s__text_00091354)" ( identifier , identifier )))) ;) (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" { (if_statement "if (iVar5 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" identifier = (string_literal ""%P: warning: cannot find entry symbol %s; not setting start address\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000290ef:\n      puVar15 = DAT_00091798;" statement_identifier : (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" identifier = identifier) ;)) (expression_statement "uVar6 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar10,5)" identifier = (call_expression "dcgettext(0,pcVar10,5)" identifier (argument_list "(0,pcVar10,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,puVar15);" (call_expression "FUN_00031760(uVar6,puVar15)" identifier (argument_list "(uVar6,puVar15)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" { (expression_statement "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" identifier (argument_list "(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" ( number_literal , (string_literal ""%P: warning: cannot find entry symbol %s; defaulting to %V\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,puVar15,uVar6);" (call_expression "FUN_00031760(uVar12,puVar15,uVar6)" identifier (argument_list "(uVar12,puVar15,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);" (assignment_expression "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6)" identifier = (call_expression "bfd_set_start_address(DAT_00091c50,uVar6)" identifier (argument_list "(DAT_00091c50,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier (argument_list "(0,"%F%P: can\'t set start address\n",5)" ( number_literal , (string_literal ""%F%P: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];" statement_identifier : (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;)) (goto_statement "goto joined_r0x0002800a;" goto statement_identifier ;) (labeled_statement "LAB_000283a0:\n  uVar6 = *puVar13;" statement_identifier : (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;)) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid length for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid length for memory region %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028237;" goto statement_identifier ;) (labeled_statement "code_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" statement_identifier : (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))" ( (pointer_expression "**(code **)(*(int *)(piVar24[4] + 4) + 0x170)" * (pointer_expression "*(code **)(*(int *)(piVar24[4] + 4) + 0x170)" * (cast_expression "(code **)(*(int *)(piVar24[4] + 4) + 0x170)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(piVar24[4] + 4) + 0x170)" ( (binary_expression "*(int *)(piVar24[4] + 4) + 0x170" (pointer_expression "*(int *)(piVar24[4] + 4)" * (cast_expression "(int *)(piVar24[4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[4] + 4)" ( (binary_expression "piVar24[4] + 4" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar13,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;)) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028684;" goto statement_identifier ;) (labeled_statement "code_r0x00028b27:\n  iVar5 = piVar24[6];" statement_identifier : (expression_statement "iVar5 = piVar24[6];" (assignment_expression "iVar5 = piVar24[6]" identifier = (subscript_expression "piVar24[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier (argument_list "(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" ( number_literal , (string_literal ""%X%P: section `%s\' assigned to non-existent phdr `%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,iVar5,pbVar3);" (call_expression "FUN_00031760(uVar6,iVar5,pbVar3)" identifier (argument_list "(uVar6,iVar5,pbVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (goto_statement "goto joined_r0x00028aeb;" 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: Unknown calling convention -- yet parameter storage is locked */\n\nvoid lang_process(void)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  byte bVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  bfd *pbVar6;\n  lang_output_section_phdr_list *plVar7;\n  lang_phdr *plVar8;\n  byte *pbVar9;\n  bfd *pbVar10;\n  bfd_link_hash_entry *pbVar11;\n  lang_output_section_statement_struct *plVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  undefined4 *puVar15;\n  require_defined_symbol *prVar16;\n  undefined *puVar17;\n  lang_statement_union **pplVar18;\n  lang_statement_union **pplVar19;\n  lang_input_statement_type *plVar20;\n  undefined1 uVar21;\n  char cVar22;\n  int iVar23;\n  char *pcVar24;\n  size_t sVar25;\n  bfd_boolean bVar26;\n  int iVar27;\n  char *pcVar28;\n  bfd_elf_version_expr *pbVar29;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar30;\n  char *fmt;\n  undefined4 uVar31;\n  lang_statement_union *plVar32;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar33;\n  bfd_section *pbVar34;\n  lang_output_section_statement_type *plVar35;\n  bfd_vma bVar36;\n  bfd_link_hash_entry **ppbVar37;\n  int iVar38;\n  int *__ptr;\n  uint uVar39;\n  byte *pbVar40;\n  etree_type *peVar41;\n  byte bVar42;\n  bfd_target *pbVar43;\n  bfd_boolean *extraout_ECX;\n  bfd_boolean *has_relro_section;\n  bfd_boolean *extraout_ECX_00;\n  asection *paVar44;\n  lang_statement_list_type *plVar45;\n  uint uVar46;\n  lang_statement_union *plVar47;\n  lang_output_section_statement_struct *plVar48;\n  asection *paVar49;\n  uint uVar50;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar51;\n  bfd_section *pbVar52;\n  lang_output_section_phdr_list *plVar53;\n  asection *paVar54;\n  lang_statement_union *plVar55;\n  lang_output_section_phdr_list *plVar56;\n  bfd_vma bVar57;\n  lang_statement_union *plVar58;\n  bfd_link_hash_entry **ppbVar59;\n  int *piVar60;\n  undefined4 uVar61;\n  memory_region_struct *pmVar62;\n  lang_statement_union *plVar63;\n  byte *pbVar64;\n  bfd *pbVar65;\n  bool bVar66;\n  bool bVar67;\n  byte bVar68;\n  lang_statement_union *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  bfd *local_40;\n  uint power;\n  bfd_vma bStack_14;\n  \n  bVar68 = 0;\n  bStack_14 = 0x27e19;\n  if (link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0) {\n    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);\n  }\n  current_target = default_target;\n  lang_for_each_statement_worker(ldlang_open_output,statement_list.head);\n  init_opb();\n  ldemul_create_output_section_statements();\n  for (pbVar4 = entry_symbol.next; pbVar4 != (bfd_sym_chain *)0x0; pbVar4 = pbVar4->next) {\n    insert_undefined(pbVar4->name);\n  }\n  iVar23 = bfd_section_already_linked_table_init();\n  if (iVar23 == 0) {\n    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar24);\n  }\n  lang_statement_iteration = lang_statement_iteration + 1;\n  current_target = default_target;\n  open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);\n  pplVar19 = input_file_chain.tail;\n  plVar55 = input_file_chain.head;\n  pplVar18 = file_chain.tail;\n  plVar47 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar51 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar23 = plugin_call_all_symbols_read();\n    if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar45 = stat_ptr;\n    if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar45->tail;\n    plVar51 = *pplVar13;\n    plVar45->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar47 = *pplVar18;\n    file_chain.tail = pplVar18;\n    *pplVar18 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar18 = input_file_chain.tail;\n    plVar55 = *pplVar19;\n    input_file_chain.tail = pplVar19;\n    *pplVar19 = (lang_statement_union *)0x0;\n    plVar58 = file_chain.head;\n    plVar63 = input_file_chain.head;\n    if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }\n  }\n  if (link_info.gc_sym_list != (bfd_sym_chain *)0x0) {\n    info_assert("../../ld/ldlang.c",0x1c67);\n  }\n  link_info.gc_sym_list = &entry_symbol;\n  if (entry_symbol.name == (char *)0x0) {\n    link_info.gc_sym_list = entry_symbol.next;\n    if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }\n  }\n  if (link_info.init_function != (char *)0x0) {\n    lang_add_gc_name(link_info.init_function);\n  }\n  if (link_info.fini_function != (char *)0x0) {\n    lang_add_gc_name(link_info.fini_function);\n  }\n  ldemul_after_open();\n  if ((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar24);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar47 = file_chain.head;\njoined_r0x0002800a:\n  if (plVar47 != (lang_statement_union *)0x0) {\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);\n    (version->globals).list = orig;\n    (version->locals).list = pbVar29;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  puVar17 = PTR__sch_istable_00090fa8;\n  if (config.build_constructors != 0) {\n    local_40 = link_info.input_bfds;\n    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar62 = lang_memory_region_list;\njoined_r0x00028237:\n  if (pmVar62 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }\n  expld.phase = lang_first_phase_enum;\n  if (((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {\n    if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }\n  }\n  lang_gc_sections_1(statement_list.head);\n  uVar21 = link_info._0_1_;\n  plVar47 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar21 & 0x40) != 0) {\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }\n  pbVar6 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar55 = (lang_statement_union *)0x0;\n  update_wild_statements(statement_list.head);\n  lang_statement_iteration = lang_statement_iteration + 1;\n  map_input_to_output_sections\n            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0);\n  plVar51 = (lang_statement_union *)0x0;\n  plVar47 = ((lang_output_section_statement.head)->header).next;\n  if (plVar47 == (lang_statement_union *)0x0) {\nLAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }\n  pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150);\n  for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (plVar47->wild_statement).children.head) {\n    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;\njoined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar42 = link_info._0_1_ & 3;\n  ppbVar59 = start_stop_syms;\n  plVar47 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar42 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    paVar44 = (plVar47->data_statement).output_section;\n    if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }\n    ppbVar59 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar37 = ppbVar59 + start_stop_count;\n    do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_000288f7:\n  if (bVar42 != 2) {\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }\n  ldemul_before_allocation();\n  plVar53 = (lang_output_section_phdr_list *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_50 = (lang_statement_union *)0x0;\n    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }\n    bVar57 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }\n    peVar41 = plVar8->at;\n    bVar36 = 0;\n    if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }\n    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);\n    if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }\n  }\n  free(local_4c);\n  has_relro_section = extraout_ECX;\n  for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar6 = link_info.output_bfd;\n  uVar46 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar59 = start_stop_syms + start_stop_count;\n    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);\n    ppbVar37 = start_stop_syms;\n    do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_00028c60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar16 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar34 = (link_info.output_bfd)->sections;\n    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;\n    if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }\n    prVar16 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }\n  }\njoined_r0x00028c93:\n  for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }\n  iVar23 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar23 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar24);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar23 = 0;\n  }\n  iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)) {\n    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);\n    if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar61 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar24 = entry_symbol.name;\n    if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }\n    uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }\n  }\n  iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61);\n  if (iVar23 != 0) {\n    return;\n  }\n  pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar24);\n  return;\ncode_r0x00028eb3:\n  plVar47 = (plVar47->wild_statement).children.head;\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  pcVar24 = (pmVar62->name_list).name;\n  pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar28,pcVar24);\n  pmVar62 = pmVar62->next;\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);\n  pbVar52 = pbVar52->next;\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  plVar55 = (plVar47->wild_statement).children.head;\n  pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar24,plVar55,pbVar9);\n  paVar44 = (asection *)paVar44->name;\n  has_relro_section = extraout_ECX_00;\n  goto joined_r0x00028aeb;\n}\n\n" comment comment comment (function_definition "void lang_process(void)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  byte bVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  bfd *pbVar6;\n  lang_output_section_phdr_list *plVar7;\n  lang_phdr *plVar8;\n  byte *pbVar9;\n  bfd *pbVar10;\n  bfd_link_hash_entry *pbVar11;\n  lang_output_section_statement_struct *plVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  undefined4 *puVar15;\n  require_defined_symbol *prVar16;\n  undefined *puVar17;\n  lang_statement_union **pplVar18;\n  lang_statement_union **pplVar19;\n  lang_input_statement_type *plVar20;\n  undefined1 uVar21;\n  char cVar22;\n  int iVar23;\n  char *pcVar24;\n  size_t sVar25;\n  bfd_boolean bVar26;\n  int iVar27;\n  char *pcVar28;\n  bfd_elf_version_expr *pbVar29;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar30;\n  char *fmt;\n  undefined4 uVar31;\n  lang_statement_union *plVar32;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar33;\n  bfd_section *pbVar34;\n  lang_output_section_statement_type *plVar35;\n  bfd_vma bVar36;\n  bfd_link_hash_entry **ppbVar37;\n  int iVar38;\n  int *__ptr;\n  uint uVar39;\n  byte *pbVar40;\n  etree_type *peVar41;\n  byte bVar42;\n  bfd_target *pbVar43;\n  bfd_boolean *extraout_ECX;\n  bfd_boolean *has_relro_section;\n  bfd_boolean *extraout_ECX_00;\n  asection *paVar44;\n  lang_statement_list_type *plVar45;\n  uint uVar46;\n  lang_statement_union *plVar47;\n  lang_output_section_statement_struct *plVar48;\n  asection *paVar49;\n  uint uVar50;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar51;\n  bfd_section *pbVar52;\n  lang_output_section_phdr_list *plVar53;\n  asection *paVar54;\n  lang_statement_union *plVar55;\n  lang_output_section_phdr_list *plVar56;\n  bfd_vma bVar57;\n  lang_statement_union *plVar58;\n  bfd_link_hash_entry **ppbVar59;\n  int *piVar60;\n  undefined4 uVar61;\n  memory_region_struct *pmVar62;\n  lang_statement_union *plVar63;\n  byte *pbVar64;\n  bfd *pbVar65;\n  bool bVar66;\n  bool bVar67;\n  byte bVar68;\n  lang_statement_union *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  bfd *local_40;\n  uint power;\n  bfd_vma bStack_14;\n  \n  bVar68 = 0;\n  bStack_14 = 0x27e19;\n  if (link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0) {\n    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);\n  }\n  current_target = default_target;\n  lang_for_each_statement_worker(ldlang_open_output,statement_list.head);\n  init_opb();\n  ldemul_create_output_section_statements();\n  for (pbVar4 = entry_symbol.next; pbVar4 != (bfd_sym_chain *)0x0; pbVar4 = pbVar4->next) {\n    insert_undefined(pbVar4->name);\n  }\n  iVar23 = bfd_section_already_linked_table_init();\n  if (iVar23 == 0) {\n    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar24);\n  }\n  lang_statement_iteration = lang_statement_iteration + 1;\n  current_target = default_target;\n  open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);\n  pplVar19 = input_file_chain.tail;\n  plVar55 = input_file_chain.head;\n  pplVar18 = file_chain.tail;\n  plVar47 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar51 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar23 = plugin_call_all_symbols_read();\n    if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar45 = stat_ptr;\n    if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar45->tail;\n    plVar51 = *pplVar13;\n    plVar45->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar47 = *pplVar18;\n    file_chain.tail = pplVar18;\n    *pplVar18 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar18 = input_file_chain.tail;\n    plVar55 = *pplVar19;\n    input_file_chain.tail = pplVar19;\n    *pplVar19 = (lang_statement_union *)0x0;\n    plVar58 = file_chain.head;\n    plVar63 = input_file_chain.head;\n    if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }\n  }\n  if (link_info.gc_sym_list != (bfd_sym_chain *)0x0) {\n    info_assert("../../ld/ldlang.c",0x1c67);\n  }\n  link_info.gc_sym_list = &entry_symbol;\n  if (entry_symbol.name == (char *)0x0) {\n    link_info.gc_sym_list = entry_symbol.next;\n    if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }\n  }\n  if (link_info.init_function != (char *)0x0) {\n    lang_add_gc_name(link_info.init_function);\n  }\n  if (link_info.fini_function != (char *)0x0) {\n    lang_add_gc_name(link_info.fini_function);\n  }\n  ldemul_after_open();\n  if ((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar24);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar47 = file_chain.head;\njoined_r0x0002800a:\n  if (plVar47 != (lang_statement_union *)0x0) {\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);\n    (version->globals).list = orig;\n    (version->locals).list = pbVar29;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  puVar17 = PTR__sch_istable_00090fa8;\n  if (config.build_constructors != 0) {\n    local_40 = link_info.input_bfds;\n    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar62 = lang_memory_region_list;\njoined_r0x00028237:\n  if (pmVar62 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }\n  expld.phase = lang_first_phase_enum;\n  if (((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {\n    if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }\n  }\n  lang_gc_sections_1(statement_list.head);\n  uVar21 = link_info._0_1_;\n  plVar47 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar21 & 0x40) != 0) {\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }\n  pbVar6 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar55 = (lang_statement_union *)0x0;\n  update_wild_statements(statement_list.head);\n  lang_statement_iteration = lang_statement_iteration + 1;\n  map_input_to_output_sections\n            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0);\n  plVar51 = (lang_statement_union *)0x0;\n  plVar47 = ((lang_output_section_statement.head)->header).next;\n  if (plVar47 == (lang_statement_union *)0x0) {\nLAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }\n  pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150);\n  for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (plVar47->wild_statement).children.head) {\n    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;\njoined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar42 = link_info._0_1_ & 3;\n  ppbVar59 = start_stop_syms;\n  plVar47 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar42 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    paVar44 = (plVar47->data_statement).output_section;\n    if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }\n    ppbVar59 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar37 = ppbVar59 + start_stop_count;\n    do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_000288f7:\n  if (bVar42 != 2) {\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }\n  ldemul_before_allocation();\n  plVar53 = (lang_output_section_phdr_list *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_50 = (lang_statement_union *)0x0;\n    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }\n    bVar57 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }\n    peVar41 = plVar8->at;\n    bVar36 = 0;\n    if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }\n    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);\n    if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }\n  }\n  free(local_4c);\n  has_relro_section = extraout_ECX;\n  for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar6 = link_info.output_bfd;\n  uVar46 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar59 = start_stop_syms + start_stop_count;\n    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);\n    ppbVar37 = start_stop_syms;\n    do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_00028c60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar16 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar34 = (link_info.output_bfd)->sections;\n    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;\n    if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }\n    prVar16 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }\n  }\njoined_r0x00028c93:\n  for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }\n  iVar23 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar23 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar24);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar23 = 0;\n  }\n  iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)) {\n    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);\n    if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar61 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar24 = entry_symbol.name;\n    if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }\n    uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }\n  }\n  iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61);\n  if (iVar23 != 0) {\n    return;\n  }\n  pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar24);\n  return;\ncode_r0x00028eb3:\n  plVar47 = (plVar47->wild_statement).children.head;\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  pcVar24 = (pmVar62->name_list).name;\n  pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar28,pcVar24);\n  pmVar62 = pmVar62->next;\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);\n  pbVar52 = pbVar52->next;\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  plVar55 = (plVar47->wild_statement).children.head;\n  pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar24,plVar55,pbVar9);\n  paVar44 = (asection *)paVar44->name;\n  has_relro_section = extraout_ECX_00;\n  goto joined_r0x00028aeb;\n}" primitive_type (function_declarator "lang_process(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 *puVar1;\n  void *pvVar2;\n  byte bVar3;\n  bfd_sym_chain *pbVar4;\n  asneeded_minfo *paVar5;\n  bfd *pbVar6;\n  lang_output_section_phdr_list *plVar7;\n  lang_phdr *plVar8;\n  byte *pbVar9;\n  bfd *pbVar10;\n  bfd_link_hash_entry *pbVar11;\n  lang_output_section_statement_struct *plVar12;\n  lang_statement_union **pplVar13;\n  lang_statement_union **pplVar14;\n  undefined4 *puVar15;\n  require_defined_symbol *prVar16;\n  undefined *puVar17;\n  lang_statement_union **pplVar18;\n  lang_statement_union **pplVar19;\n  lang_input_statement_type *plVar20;\n  undefined1 uVar21;\n  char cVar22;\n  int iVar23;\n  char *pcVar24;\n  size_t sVar25;\n  bfd_boolean bVar26;\n  int iVar27;\n  char *pcVar28;\n  bfd_elf_version_expr *pbVar29;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar30;\n  char *fmt;\n  undefined4 uVar31;\n  lang_statement_union *plVar32;\n  lang_output_section_statement_struct *after;\n  lang_statement_union_type **pplVar33;\n  bfd_section *pbVar34;\n  lang_output_section_statement_type *plVar35;\n  bfd_vma bVar36;\n  bfd_link_hash_entry **ppbVar37;\n  int iVar38;\n  int *__ptr;\n  uint uVar39;\n  byte *pbVar40;\n  etree_type *peVar41;\n  byte bVar42;\n  bfd_target *pbVar43;\n  bfd_boolean *extraout_ECX;\n  bfd_boolean *has_relro_section;\n  bfd_boolean *extraout_ECX_00;\n  asection *paVar44;\n  lang_statement_list_type *plVar45;\n  uint uVar46;\n  lang_statement_union *plVar47;\n  lang_output_section_statement_struct *plVar48;\n  asection *paVar49;\n  uint uVar50;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar51;\n  bfd_section *pbVar52;\n  lang_output_section_phdr_list *plVar53;\n  asection *paVar54;\n  lang_statement_union *plVar55;\n  lang_output_section_phdr_list *plVar56;\n  bfd_vma bVar57;\n  lang_statement_union *plVar58;\n  bfd_link_hash_entry **ppbVar59;\n  int *piVar60;\n  undefined4 uVar61;\n  memory_region_struct *pmVar62;\n  lang_statement_union *plVar63;\n  byte *pbVar64;\n  bfd *pbVar65;\n  bool bVar66;\n  bool bVar67;\n  byte bVar68;\n  lang_statement_union *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  bfd *local_40;\n  uint power;\n  bfd_vma bStack_14;\n  \n  bVar68 = 0;\n  bStack_14 = 0x27e19;\n  if (link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0) {\n    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);\n  }\n  current_target = default_target;\n  lang_for_each_statement_worker(ldlang_open_output,statement_list.head);\n  init_opb();\n  ldemul_create_output_section_statements();\n  for (pbVar4 = entry_symbol.next; pbVar4 != (bfd_sym_chain *)0x0; pbVar4 = pbVar4->next) {\n    insert_undefined(pbVar4->name);\n  }\n  iVar23 = bfd_section_already_linked_table_init();\n  if (iVar23 == 0) {\n    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar24);\n  }\n  lang_statement_iteration = lang_statement_iteration + 1;\n  current_target = default_target;\n  open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);\n  pplVar19 = input_file_chain.tail;\n  plVar55 = input_file_chain.head;\n  pplVar18 = file_chain.tail;\n  plVar47 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar51 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar23 = plugin_call_all_symbols_read();\n    if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar45 = stat_ptr;\n    if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar45->tail;\n    plVar51 = *pplVar13;\n    plVar45->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar47 = *pplVar18;\n    file_chain.tail = pplVar18;\n    *pplVar18 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar18 = input_file_chain.tail;\n    plVar55 = *pplVar19;\n    input_file_chain.tail = pplVar19;\n    *pplVar19 = (lang_statement_union *)0x0;\n    plVar58 = file_chain.head;\n    plVar63 = input_file_chain.head;\n    if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }\n  }\n  if (link_info.gc_sym_list != (bfd_sym_chain *)0x0) {\n    info_assert("../../ld/ldlang.c",0x1c67);\n  }\n  link_info.gc_sym_list = &entry_symbol;\n  if (entry_symbol.name == (char *)0x0) {\n    link_info.gc_sym_list = entry_symbol.next;\n    if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }\n  }\n  if (link_info.init_function != (char *)0x0) {\n    lang_add_gc_name(link_info.init_function);\n  }\n  if (link_info.fini_function != (char *)0x0) {\n    lang_add_gc_name(link_info.fini_function);\n  }\n  ldemul_after_open();\n  if ((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar24);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  plVar47 = file_chain.head;\njoined_r0x0002800a:\n  if (plVar47 != (lang_statement_union *)0x0) {\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);\n    (version->globals).list = orig;\n    (version->locals).list = pbVar29;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);\n  }\n  ldctor_build_sets();\n  puVar17 = PTR__sch_istable_00090fa8;\n  if (config.build_constructors != 0) {\n    local_40 = link_info.input_bfds;\n    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar62 = lang_memory_region_list;\njoined_r0x00028237:\n  if (pmVar62 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }\n  expld.phase = lang_first_phase_enum;\n  if (((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {\n    if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }\n  }\n  lang_gc_sections_1(statement_list.head);\n  uVar21 = link_info._0_1_;\n  plVar47 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar21 & 0x40) != 0) {\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }\n  pbVar6 = link_info.input_bfds;\n  if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar55 = (lang_statement_union *)0x0;\n  update_wild_statements(statement_list.head);\n  lang_statement_iteration = lang_statement_iteration + 1;\n  map_input_to_output_sections\n            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0);\n  plVar51 = (lang_statement_union *)0x0;\n  plVar47 = ((lang_output_section_statement.head)->header).next;\n  if (plVar47 == (lang_statement_union *)0x0) {\nLAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }\n  pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150);\n  for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (plVar47->wild_statement).children.head) {\n    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;\njoined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar42 = link_info._0_1_ & 3;\n  ppbVar59 = start_stop_syms;\n  plVar47 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar42 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    paVar44 = (plVar47->data_statement).output_section;\n    if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }\n    ppbVar59 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar37 = ppbVar59 + start_stop_count;\n    do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_000288f7:\n  if (bVar42 != 2) {\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }\n  ldemul_before_allocation();\n  plVar53 = (lang_output_section_phdr_list *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_50 = (lang_statement_union *)0x0;\n    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }\n    bVar57 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }\n    peVar41 = plVar8->at;\n    bVar36 = 0;\n    if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }\n    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);\n    if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }\n  }\n  free(local_4c);\n  has_relro_section = extraout_ECX;\n  for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }\n  lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));\n  ldemul_after_allocation();\n  pbVar6 = link_info.output_bfd;\n  uVar46 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar59 = start_stop_syms + start_stop_count;\n    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);\n    ppbVar37 = start_stop_syms;\n    do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }\nLAB_00028c60:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar16 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar34 = (link_info.output_bfd)->sections;\n    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;\n    if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }\n    prVar16 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }\n  }\njoined_r0x00028c93:\n  for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }\n  iVar23 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar23 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar24);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar23 = 0;\n  }\n  iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)) {\n    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);\n    if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar61 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar24 = entry_symbol.name;\n    if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }\n    uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }\n  }\n  iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61);\n  if (iVar23 != 0) {\n    return;\n  }\n  pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar24);\n  return;\ncode_r0x00028eb3:\n  plVar47 = (plVar47->wild_statement).children.head;\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  pcVar24 = (pmVar62->name_list).name;\n  pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar28,pcVar24);\n  pmVar62 = pmVar62->next;\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);\n  pbVar52 = pbVar52->next;\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  plVar55 = (plVar47->wild_statement).children.head;\n  pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar24,plVar55,pbVar9);\n  paVar44 = (asection *)paVar44->name;\n  has_relro_section = extraout_ECX_00;\n  goto joined_r0x00028aeb;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "bfd_sym_chain *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "asneeded_minfo *paVar5;" type_identifier (pointer_declarator "*paVar5" * identifier) ;) (declaration "bfd *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "lang_phdr *plVar8;" type_identifier (pointer_declarator "*plVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bfd *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bfd_link_hash_entry *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar12;" type_identifier (pointer_declarator "*plVar12" * identifier) ;) (declaration "lang_statement_union **pplVar13;" type_identifier (pointer_declarator "**pplVar13" * (pointer_declarator "*pplVar13" * identifier)) ;) (declaration "lang_statement_union **pplVar14;" type_identifier (pointer_declarator "**pplVar14" * (pointer_declarator "*pplVar14" * identifier)) ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "require_defined_symbol *prVar16;" type_identifier (pointer_declarator "*prVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "lang_statement_union **pplVar18;" type_identifier (pointer_declarator "**pplVar18" * (pointer_declarator "*pplVar18" * identifier)) ;) (declaration "lang_statement_union **pplVar19;" type_identifier (pointer_declarator "**pplVar19" * (pointer_declarator "*pplVar19" * identifier)) ;) (declaration "lang_input_statement_type *plVar20;" type_identifier (pointer_declarator "*plVar20" * identifier) ;) (declaration "undefined1 uVar21;" type_identifier identifier ;) (declaration "char cVar22;" primitive_type identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "char *pcVar24;" primitive_type (pointer_declarator "*pcVar24" * identifier) ;) (declaration "size_t sVar25;" primitive_type identifier ;) (declaration "bfd_boolean bVar26;" type_identifier identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "char *pcVar28;" primitive_type (pointer_declarator "*pcVar28" * identifier) ;) (declaration "bfd_elf_version_expr *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "bfd_elf_version_tree *version;" type_identifier (pointer_declarator "*version" * identifier) ;) (declaration "bfd_target *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "undefined4 uVar31;" type_identifier identifier ;) (declaration "lang_statement_union *plVar32;" type_identifier (pointer_declarator "*plVar32" * identifier) ;) (declaration "lang_output_section_statement_struct *after;" type_identifier (pointer_declarator "*after" * identifier) ;) (declaration "lang_statement_union_type **pplVar33;" type_identifier (pointer_declarator "**pplVar33" * (pointer_declarator "*pplVar33" * identifier)) ;) (declaration "bfd_section *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "lang_output_section_statement_type *plVar35;" type_identifier (pointer_declarator "*plVar35" * identifier) ;) (declaration "bfd_vma bVar36;" type_identifier identifier ;) (declaration "bfd_link_hash_entry **ppbVar37;" type_identifier (pointer_declarator "**ppbVar37" * (pointer_declarator "*ppbVar37" * identifier)) ;) (declaration "int iVar38;" primitive_type identifier ;) (declaration "int *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "etree_type *peVar41;" type_identifier (pointer_declarator "*peVar41" * identifier) ;) (declaration "byte bVar42;" type_identifier identifier ;) (declaration "bfd_target *pbVar43;" type_identifier (pointer_declarator "*pbVar43" * identifier) ;) (declaration "bfd_boolean *extraout_ECX;" type_identifier (pointer_declarator "*extraout_ECX" * identifier) ;) (declaration "bfd_boolean *has_relro_section;" type_identifier (pointer_declarator "*has_relro_section" * identifier) ;) (declaration "bfd_boolean *extraout_ECX_00;" type_identifier (pointer_declarator "*extraout_ECX_00" * identifier) ;) (declaration "asection *paVar44;" type_identifier (pointer_declarator "*paVar44" * identifier) ;) (declaration "lang_statement_list_type *plVar45;" type_identifier (pointer_declarator "*plVar45" * identifier) ;) (declaration "uint uVar46;" type_identifier identifier ;) (declaration "lang_statement_union *plVar47;" type_identifier (pointer_declarator "*plVar47" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar48;" type_identifier (pointer_declarator "*plVar48" * identifier) ;) (declaration "asection *paVar49;" type_identifier (pointer_declarator "*paVar49" * identifier) ;) (declaration "uint uVar50;" type_identifier identifier ;) (declaration "bfd_elf_version_expr *orig;" type_identifier (pointer_declarator "*orig" * identifier) ;) (declaration "lang_statement_union *plVar51;" type_identifier (pointer_declarator "*plVar51" * identifier) ;) (declaration "bfd_section *pbVar52;" type_identifier (pointer_declarator "*pbVar52" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar53;" type_identifier (pointer_declarator "*plVar53" * identifier) ;) (declaration "asection *paVar54;" type_identifier (pointer_declarator "*paVar54" * identifier) ;) (declaration "lang_statement_union *plVar55;" type_identifier (pointer_declarator "*plVar55" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar56;" type_identifier (pointer_declarator "*plVar56" * identifier) ;) (declaration "bfd_vma bVar57;" type_identifier identifier ;) (declaration "lang_statement_union *plVar58;" type_identifier (pointer_declarator "*plVar58" * identifier) ;) (declaration "bfd_link_hash_entry **ppbVar59;" type_identifier (pointer_declarator "**ppbVar59" * (pointer_declarator "*ppbVar59" * identifier)) ;) (declaration "int *piVar60;" primitive_type (pointer_declarator "*piVar60" * identifier) ;) (declaration "undefined4 uVar61;" type_identifier identifier ;) (declaration "memory_region_struct *pmVar62;" type_identifier (pointer_declarator "*pmVar62" * identifier) ;) (declaration "lang_statement_union *plVar63;" type_identifier (pointer_declarator "*plVar63" * identifier) ;) (declaration "byte *pbVar64;" type_identifier (pointer_declarator "*pbVar64" * identifier) ;) (declaration "bfd *pbVar65;" type_identifier (pointer_declarator "*pbVar65" * identifier) ;) (declaration "bool bVar66;" primitive_type identifier ;) (declaration "bool bVar67;" primitive_type identifier ;) (declaration "byte bVar68;" type_identifier identifier ;) (declaration "lang_statement_union *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "void *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "bfd *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "uint power;" type_identifier identifier ;) (declaration "bfd_vma bStack_14;" type_identifier identifier ;) (expression_statement "bVar68 = 0;" (assignment_expression "bVar68 = 0" identifier = number_literal) ;) (expression_statement "bStack_14 = 0x27e19;" (assignment_expression "bStack_14 = 0x27e19" identifier = number_literal) ;) (if_statement "if (link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0) {\n    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);\n  }" if (parenthesized_expression "(link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0)" ( (binary_expression "link_info.dynamic_list != (bfd_elf_dynamic_list *)0x0" (field_expression "link_info.dynamic_list" identifier . field_identifier) != (cast_expression "(bfd_elf_dynamic_list *)0x0" ( (type_descriptor "bfd_elf_dynamic_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);\n  }" { (expression_statement "lang_finalize_version_expr_head(&(link_info.dynamic_list)->head);" (call_expression "lang_finalize_version_expr_head(&(link_info.dynamic_list)->head)" identifier (argument_list "(&(link_info.dynamic_list)->head)" ( (pointer_expression "&(link_info.dynamic_list)->head" & (field_expression "(link_info.dynamic_list)->head" (parenthesized_expression "(link_info.dynamic_list)" ( (field_expression "link_info.dynamic_list" identifier . field_identifier) )) -> field_identifier)) ))) ;) })) (expression_statement "current_target = default_target;" (assignment_expression "current_target = default_target" identifier = identifier) ;) (expression_statement "lang_for_each_statement_worker(ldlang_open_output,statement_list.head);" (call_expression "lang_for_each_statement_worker(ldlang_open_output,statement_list.head)" identifier (argument_list "(ldlang_open_output,statement_list.head)" ( identifier , (field_expression "statement_list.head" identifier . field_identifier) ))) ;) (expression_statement "init_opb();" (call_expression "init_opb()" identifier (argument_list "()" ( ))) ;) (expression_statement "ldemul_create_output_section_statements();" (call_expression "ldemul_create_output_section_statements()" identifier (argument_list "()" ( ))) ;) (for_statement "for (pbVar4 = entry_symbol.next; pbVar4 != (bfd_sym_chain *)0x0; pbVar4 = pbVar4->next) {\n    insert_undefined(pbVar4->name);\n  }" for ( (assignment_expression "pbVar4 = entry_symbol.next" identifier = (field_expression "entry_symbol.next" identifier . field_identifier)) ; (binary_expression "pbVar4 != (bfd_sym_chain *)0x0" identifier != (cast_expression "(bfd_sym_chain *)0x0" ( (type_descriptor "bfd_sym_chain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar4 = pbVar4->next" identifier = (field_expression "pbVar4->next" identifier -> field_identifier)) ) (compound_statement "{\n    insert_undefined(pbVar4->name);\n  }" { (expression_statement "insert_undefined(pbVar4->name);" (call_expression "insert_undefined(pbVar4->name)" identifier (argument_list "(pbVar4->name)" ( (field_expression "pbVar4->name" identifier -> field_identifier) ))) ;) })) (expression_statement "iVar23 = bfd_section_already_linked_table_init();" (assignment_expression "iVar23 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar23 == 0) {\n    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar24);\n  }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar24);\n  }" { (expression_statement "pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier (argument_list "(0,"%F%P: can not create hash table: %E\n",5)" ( number_literal , (string_literal ""%F%P: can not create hash table: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24);" (call_expression "einfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) })) (expression_statement "lang_statement_iteration = lang_statement_iteration + 1;" (assignment_expression "lang_statement_iteration = lang_statement_iteration + 1" identifier = (binary_expression "lang_statement_iteration + 1" identifier + number_literal)) ;) (expression_statement "current_target = default_target;" (assignment_expression "current_target = default_target" identifier = identifier) ;) (expression_statement "open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);" (call_expression "open_input_bfds(statement_list.head,OPEN_BFD_NORMAL)" identifier (argument_list "(statement_list.head,OPEN_BFD_NORMAL)" ( (field_expression "statement_list.head" identifier . field_identifier) , identifier ))) ;) (expression_statement "pplVar19 = input_file_chain.tail;" (assignment_expression "pplVar19 = input_file_chain.tail" identifier = (field_expression "input_file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar55 = input_file_chain.head;" (assignment_expression "plVar55 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (expression_statement "pplVar18 = file_chain.tail;" (assignment_expression "pplVar18 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar47 = file_chain.head;" (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._1_1_ & 2) != 0) {\n    plVar51 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar23 = plugin_call_all_symbols_read();\n    if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar45 = stat_ptr;\n    if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar45->tail;\n    plVar51 = *pplVar13;\n    plVar45->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar47 = *pplVar18;\n    file_chain.tail = pplVar18;\n    *pplVar18 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar18 = input_file_chain.tail;\n    plVar55 = *pplVar19;\n    input_file_chain.tail = pplVar19;\n    *pplVar19 = (lang_statement_union *)0x0;\n    plVar58 = file_chain.head;\n    plVar63 = input_file_chain.head;\n    if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((link_info._1_1_ & 2) != 0)" ( (binary_expression "(link_info._1_1_ & 2) != 0" (parenthesized_expression "(link_info._1_1_ & 2)" ( (binary_expression "link_info._1_1_ & 2" (field_expression "link_info._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    plVar51 = stat_ptr->head;\n    pplVar13 = stat_ptr->tail;\n    iVar23 = plugin_call_all_symbols_read();\n    if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n    open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);\n    plVar45 = stat_ptr;\n    if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar14 = plVar45->tail;\n    plVar51 = *pplVar13;\n    plVar45->tail = pplVar13;\n    *pplVar13 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar13 = file_chain.tail;\n    plVar47 = *pplVar18;\n    file_chain.tail = pplVar18;\n    *pplVar18 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar18 = input_file_chain.tail;\n    plVar55 = *pplVar19;\n    input_file_chain.tail = pplVar19;\n    *pplVar19 = (lang_statement_union *)0x0;\n    plVar58 = file_chain.head;\n    plVar63 = input_file_chain.head;\n    if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }\n  }" { (expression_statement "plVar51 = stat_ptr->head;" (assignment_expression "plVar51 = stat_ptr->head" identifier = (field_expression "stat_ptr->head" identifier -> field_identifier)) ;) (expression_statement "pplVar13 = stat_ptr->tail;" (assignment_expression "pplVar13 = stat_ptr->tail" identifier = (field_expression "stat_ptr->tail" identifier -> field_identifier)) ;) (expression_statement "iVar23 = plugin_call_all_symbols_read();" (assignment_expression "iVar23 = plugin_call_all_symbols_read()" identifier = (call_expression "plugin_call_all_symbols_read()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar23 != 0) {\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar24 = plugin_error_plugin();\n      pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar28,pcVar24);\n    }" { (expression_statement "pcVar24 = plugin_error_plugin();" (assignment_expression "pcVar24 = plugin_error_plugin()" identifier = (call_expression "plugin_error_plugin()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin reported error after all symbols read\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) })) (expression_statement "open_input_bfds(*pplVar13,OPEN_BFD_NORMAL);" (call_expression "open_input_bfds(*pplVar13,OPEN_BFD_NORMAL)" identifier (argument_list "(*pplVar13,OPEN_BFD_NORMAL)" ( (pointer_expression "*pplVar13" * identifier) , identifier ))) ;) (expression_statement "plVar45 = stat_ptr;" (assignment_expression "plVar45 = stat_ptr" identifier = identifier) ;) (if_statement "if (stat_ptr->head != plVar51) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(stat_ptr->head != plVar51)" ( (binary_expression "stat_ptr->head != plVar51" (field_expression "stat_ptr->head" identifier -> field_identifier) != identifier) )) (compound_statement "{\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pplVar14 = plVar45->tail;" (assignment_expression "pplVar14 = plVar45->tail" identifier = (field_expression "plVar45->tail" identifier -> field_identifier)) ;) (expression_statement "plVar51 = *pplVar13;" (assignment_expression "plVar51 = *pplVar13" identifier = (pointer_expression "*pplVar13" * identifier)) ;) (expression_statement "plVar45->tail = pplVar13;" (assignment_expression "plVar45->tail = pplVar13" (field_expression "plVar45->tail" identifier -> field_identifier) = identifier) ;) (expression_statement "*pplVar13 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar13 = (lang_statement_union *)0x0" (pointer_expression "*pplVar13" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (file_chain.head != plVar47) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(file_chain.head != plVar47)" ( (binary_expression "file_chain.head != plVar47" (field_expression "file_chain.head" identifier . field_identifier) != identifier) )) (compound_statement "{\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar47 = *pplVar18;" (assignment_expression "plVar47 = *pplVar18" identifier = (pointer_expression "*pplVar18" * identifier)) ;) (expression_statement "file_chain.tail = pplVar18;" (assignment_expression "file_chain.tail = pplVar18" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar18 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar18 = (lang_statement_union *)0x0" (pointer_expression "*pplVar18" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (input_file_chain.head != plVar55) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(input_file_chain.head != plVar55)" ( (binary_expression "input_file_chain.head != plVar55" (field_expression "input_file_chain.head" identifier . field_identifier) != identifier) )) (compound_statement "{\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "pplVar18 = input_file_chain.tail;" (assignment_expression "pplVar18 = input_file_chain.tail" identifier = (field_expression "input_file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar55 = *pplVar19;" (assignment_expression "plVar55 = *pplVar19" identifier = (pointer_expression "*pplVar19" * identifier)) ;) (expression_statement "input_file_chain.tail = pplVar19;" (assignment_expression "input_file_chain.tail = pplVar19" (field_expression "input_file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar19 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar19 = (lang_statement_union *)0x0" (pointer_expression "*pplVar19" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar58 = file_chain.head;" (assignment_expression "plVar58 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "plVar63 = input_file_chain.head;" (assignment_expression "plVar63 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (if_statement "if (plVar51 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }\n      plVar58 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029491:\n      plugin_insert = &plVar58->input_statement;\n      plVar20 = plugin_insert;\n      plVar45 = stat_ptr;\n      *pplVar14 = (plugin_insert->header).next;\n      (plVar20->header).next = plVar51;\n      if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }\n      *pplVar18 = plVar20->next_real_file;\n      plVar20->next_real_file = plVar55;\n      pplVar19 = file_chain.tail;\n      if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }\n      if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar13;\n      pplVar18 = file_chain.tail;\n      plVar47 = file_chain.head;\n      lang_statement_iteration = lang_statement_iteration + 1;\n      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);\n      if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar47 = *pplVar18;\n      file_chain.tail = pplVar18;\n      *pplVar18 = (lang_statement_union *)0x0;\n      while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }\n    }" { (for_statement "for (; plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0; plVar58 = (plVar58->wild_statement).children.head)\n      {\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }" for ( ; (comma_expression "plugin_insert = (lang_input_statement_type *)plVar63,\n          plVar58 != (lang_statement_union *)0x0" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar63" identifier = (cast_expression "(lang_input_statement_type *)plVar63" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "plVar58 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "plVar58 = (plVar58->wild_statement).children.head" identifier = (field_expression "(plVar58->wild_statement).children.head" (field_expression "(plVar58->wild_statement).children" (parenthesized_expression "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n        if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }\n        if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }\n        plVar63 = (lang_statement_union *)plugin_insert;\n      }" { (if_statement "if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }" if (parenthesized_expression "(((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0)" ( (binary_expression "((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000) != 0" (parenthesized_expression "((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar58->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar58->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar58->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;\n          break;\n        }" { (if_statement "if (((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029491;" if (parenthesized_expression "(((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0)" ( (binary_expression "((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0" (parenthesized_expression "((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000)" ( (binary_expression "(uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000" (field_expression "(uint)(plVar58->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar58->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00029491;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if (((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }" if (parenthesized_expression "(((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0))" ( (binary_expression "((plVar58->reloc_statement).section != (asection *)0x0) &&\n           (((plVar58->reloc_statement).section)->target_index == 0)" (parenthesized_expression "((plVar58->reloc_statement).section != (asection *)0x0)" ( (binary_expression "(plVar58->reloc_statement).section != (asection *)0x0" (field_expression "(plVar58->reloc_statement).section" (parenthesized_expression "(plVar58->reloc_statement)" ( (field_expression "plVar58->reloc_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((plVar58->reloc_statement).section)->target_index == 0)" ( (binary_expression "((plVar58->reloc_statement).section)->target_index == 0" (field_expression "((plVar58->reloc_statement).section)->target_index" (parenthesized_expression "((plVar58->reloc_statement).section)" ( (field_expression "(plVar58->reloc_statement).section" (parenthesized_expression "(plVar58->reloc_statement)" ( (field_expression "plVar58->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n          plugin_insert = (lang_input_statement_type *)plVar58;\n        }" { (expression_statement "plugin_insert = (lang_input_statement_type *)plVar58;" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar58" identifier = (cast_expression "(lang_input_statement_type *)plVar58" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "plVar63 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar63 = (lang_statement_union *)plugin_insert" identifier = (cast_expression "(lang_statement_union *)plugin_insert" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "plVar58 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar58 = (lang_statement_union *)plugin_insert" identifier = (cast_expression "(lang_statement_union *)plugin_insert" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }" if (parenthesized_expression "((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0)" ( (binary_expression "(lang_statement_union *)plugin_insert == (lang_statement_union *)0x0" (cast_expression "(lang_statement_union *)plugin_insert" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar58 = (lang_statement_union *)plugin_insert;\n      }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1c32);" (call_expression "info_assert("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar58 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar58 = (lang_statement_union *)plugin_insert" identifier = (cast_expression "(lang_statement_union *)plugin_insert" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (labeled_statement "LAB_00029491:\n      plugin_insert = &plVar58->input_statement;" statement_identifier : (expression_statement "plugin_insert = &plVar58->input_statement;" (assignment_expression "plugin_insert = &plVar58->input_statement" identifier = (pointer_expression "&plVar58->input_statement" & (field_expression "plVar58->input_statement" identifier -> field_identifier))) ;)) (expression_statement "plVar20 = plugin_insert;" (assignment_expression "plVar20 = plugin_insert" identifier = identifier) ;) (expression_statement "plVar45 = stat_ptr;" (assignment_expression "plVar45 = stat_ptr" identifier = identifier) ;) (expression_statement "*pplVar14 = (plugin_insert->header).next;" (assignment_expression "*pplVar14 = (plugin_insert->header).next" (pointer_expression "*pplVar14" * identifier) = (field_expression "(plugin_insert->header).next" (parenthesized_expression "(plugin_insert->header)" ( (field_expression "plugin_insert->header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(plVar20->header).next = plVar51;" (assignment_expression "(plVar20->header).next = plVar51" (field_expression "(plVar20->header).next" (parenthesized_expression "(plVar20->header)" ( (field_expression "plVar20->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (plVar20 == (lang_input_statement_type *)plVar45->tail) {\n        plVar45->tail = pplVar14;\n      }" if (parenthesized_expression "(plVar20 == (lang_input_statement_type *)plVar45->tail)" ( (binary_expression "plVar20 == (lang_input_statement_type *)plVar45->tail" identifier == (cast_expression "(lang_input_statement_type *)plVar45->tail" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar45->tail" identifier -> field_identifier))) )) (compound_statement "{\n        plVar45->tail = pplVar14;\n      }" { (expression_statement "plVar45->tail = pplVar14;" (assignment_expression "plVar45->tail = pplVar14" (field_expression "plVar45->tail" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*pplVar18 = plVar20->next_real_file;" (assignment_expression "*pplVar18 = plVar20->next_real_file" (pointer_expression "*pplVar18" * identifier) = (field_expression "plVar20->next_real_file" identifier -> field_identifier)) ;) (expression_statement "plVar20->next_real_file = plVar55;" (assignment_expression "plVar20->next_real_file = plVar55" (field_expression "plVar20->next_real_file" identifier -> field_identifier) = identifier) ;) (expression_statement "pplVar19 = file_chain.tail;" (assignment_expression "pplVar19 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (if_statement "if (input_file_chain.tail == &plVar20->next_real_file) {\n        input_file_chain.tail = pplVar18;\n      }" if (parenthesized_expression "(input_file_chain.tail == &plVar20->next_real_file)" ( (binary_expression "input_file_chain.tail == &plVar20->next_real_file" (field_expression "input_file_chain.tail" identifier . field_identifier) == (pointer_expression "&plVar20->next_real_file" & (field_expression "plVar20->next_real_file" identifier -> field_identifier))) )) (compound_statement "{\n        input_file_chain.tail = pplVar18;\n      }" { (expression_statement "input_file_chain.tail = pplVar18;" (assignment_expression "input_file_chain.tail = pplVar18" (field_expression "input_file_chain.tail" identifier . field_identifier) = identifier) ;) })) (if_statement "if (plVar20->filename == (char *)0x0) {\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }" if (parenthesized_expression "(plVar20->filename == (char *)0x0)" ( (binary_expression "plVar20->filename == (char *)0x0" (field_expression "plVar20->filename" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pplVar13 = file_chain.head;\n        file_chain.head = plVar47;\n        if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar13 = file_chain.head;" (assignment_expression "*pplVar13 = file_chain.head" (pointer_expression "*pplVar13" * identifier) = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "file_chain.head = plVar47;" (assignment_expression "file_chain.head = plVar47" (field_expression "file_chain.head" identifier . field_identifier) = identifier) ;) (if_statement "if ((lang_statement_list_type *)pplVar19 != &file_chain) {\n          pplVar13 = file_chain.tail;\n        }" if (parenthesized_expression "((lang_statement_list_type *)pplVar19 != &file_chain)" ( (binary_expression "(lang_statement_list_type *)pplVar19 != &file_chain" (cast_expression "(lang_statement_list_type *)pplVar19" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&file_chain" & identifier)) )) (compound_statement "{\n          pplVar13 = file_chain.tail;\n        }" { (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }) (else_clause "else {\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }" else (compound_statement "{\n        *pplVar13 = plVar20->next;\n        plVar20->next = plVar47;\n        if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar13 = plVar20->next;" (assignment_expression "*pplVar13 = plVar20->next" (pointer_expression "*pplVar13" * identifier) = (field_expression "plVar20->next" identifier -> field_identifier)) ;) (expression_statement "plVar20->next = plVar47;" (assignment_expression "plVar20->next = plVar47" (field_expression "plVar20->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pplVar19 != &plVar20->next) {\n          pplVar13 = file_chain.tail;\n        }" if (parenthesized_expression "(pplVar19 != &plVar20->next)" ( (binary_expression "pplVar19 != &plVar20->next" identifier != (pointer_expression "&plVar20->next" & (field_expression "plVar20->next" identifier -> field_identifier))) )) (compound_statement "{\n          pplVar13 = file_chain.tail;\n        }" { (expression_statement "pplVar13 = file_chain.tail;" (assignment_expression "pplVar13 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }))) (expression_statement "file_chain.tail = pplVar13;" (assignment_expression "file_chain.tail = pplVar13" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "pplVar18 = file_chain.tail;" (assignment_expression "pplVar18 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar47 = file_chain.head;" (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "lang_statement_iteration = lang_statement_iteration + 1;" (assignment_expression "lang_statement_iteration = lang_statement_iteration + 1" identifier = (binary_expression "lang_statement_iteration + 1" identifier + number_literal)) ;) (expression_statement "open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);" (call_expression "open_input_bfds(statement_list.head,OPEN_BFD_RESCAN)" identifier (argument_list "(statement_list.head,OPEN_BFD_RESCAN)" ( (field_expression "statement_list.head" identifier . field_identifier) , identifier ))) ;) (if_statement "if (file_chain.head != plVar47) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(file_chain.head != plVar47)" ( (binary_expression "file_chain.head != plVar47" (field_expression "file_chain.head" identifier . field_identifier) != identifier) )) (compound_statement "{\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1baf);" (call_expression "info_assert("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "plVar47 = *pplVar18;" (assignment_expression "plVar47 = *pplVar18" identifier = (pointer_expression "*pplVar18" * identifier)) ;) (expression_statement "file_chain.tail = pplVar18;" (assignment_expression "file_chain.tail = pplVar18" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar18 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar18 = (lang_statement_union *)0x0" (pointer_expression "*pplVar18" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (plVar47 != (lang_statement_union *)0x0) {\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }" while (parenthesized_expression "(plVar47 != (lang_statement_union *)0x0)" ( (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;\n        pbVar65 = (plVar47->input_statement).the_bfd;\n        if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }\n        plVar55 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }\n        plVar45 = &(plVar55->wild_statement).children;\n        for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }\nLAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;\n        if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }\n      }" { (expression_statement "pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive;" (assignment_expression "pbVar6 = ((plVar47->input_statement).the_bfd)->my_archive" identifier = (field_expression "((plVar47->input_statement).the_bfd)->my_archive" (parenthesized_expression "((plVar47->input_statement).the_bfd)" ( (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (expression_statement "pbVar65 = (plVar47->input_statement).the_bfd;" (assignment_expression "pbVar65 = (plVar47->input_statement).the_bfd" identifier = (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (pbVar6 != (bfd *)0x0) {\n          pbVar65 = pbVar6;\n        }" if (parenthesized_expression "(pbVar6 != (bfd *)0x0)" ( (binary_expression "pbVar6 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar65 = pbVar6;\n        }" { (expression_statement "pbVar65 = pbVar6;" (assignment_expression "pbVar65 = pbVar6" identifier = identifier) ;) })) (expression_statement "plVar55 = file_chain.head;" (assignment_expression "plVar55 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }" if (parenthesized_expression "(input_file_chain.head != (lang_statement_union *)0x0)" ( (binary_expression "input_file_chain.head != (lang_statement_union *)0x0" (field_expression "input_file_chain.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          plVar58 = (lang_statement_union *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          plVar51 = input_file_chain.head;\n          do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);\nLAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }\n        }" { (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (lang_statement_union *)0x0;" (assignment_expression "local_50 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar51 = input_file_chain.head;" (assignment_expression "plVar51 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (do_statement "do {\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          } while (plVar51 != (lang_statement_union *)0x0);" do (compound_statement "{\n            while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }\n            bVar57 = (plVar51->data_statement).output_offset;\n            if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }\n            plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n            local_50 = plVar58;\n          }" { (while_statement "while ((bfd *)(plVar51->wild_statement).section_list != pbVar65) {\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }" while (parenthesized_expression "((bfd *)(plVar51->wild_statement).section_list != pbVar65)" ( (binary_expression "(bfd *)(plVar51->wild_statement).section_list != pbVar65" (cast_expression "(bfd *)(plVar51->wild_statement).section_list" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier)) != identifier) )) (compound_statement "{\n              if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }\n              plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;\n              if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;\n            }" { (if_statement "if (((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)) {\n                plVar58 = plVar51;\n              }" if (parenthesized_expression "(((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0))" ( (binary_expression "((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0) &&\n                 ((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)" (parenthesized_expression "((bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0)" ( (binary_expression "(bfd *)(plVar51->wild_statement).section_list != (bfd *)0x0" (cast_expression "(bfd *)(plVar51->wild_statement).section_list" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier)) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((plVar51->wild_statement).children.head != (lang_statement_union *)0x0)" ( (binary_expression "(plVar51->wild_statement).children.head != (lang_statement_union *)0x0" (field_expression "(plVar51->wild_statement).children.head" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                plVar58 = plVar51;\n              }" { (expression_statement "plVar58 = plVar51;" (assignment_expression "plVar58 = plVar51" identifier = identifier) ;) })) (expression_statement "plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;" (assignment_expression "plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar51->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).children.tail" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (if_statement "if (plVar51 == (lang_statement_union *)0x0) goto LAB_000295b0;" if (parenthesized_expression "(plVar51 == (lang_statement_union *)0x0)" ( (binary_expression "plVar51 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000295b0;" goto statement_identifier ;)) })) (expression_statement "bVar57 = (plVar51->data_statement).output_offset;" (assignment_expression "bVar57 = (plVar51->data_statement).output_offset" identifier = (field_expression "(plVar51->data_statement).output_offset" (parenthesized_expression "(plVar51->data_statement)" ( (field_expression "plVar51->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar57 != 0) {\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }" if (parenthesized_expression "(bVar57 != 0)" ( (binary_expression "bVar57 != 0" identifier != number_literal) )) (compound_statement "{\n              plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);\n              plVar55 = *(lang_statement_union **)(bVar57 + 0x18);\n              goto LAB_000295f1;\n            }" { (expression_statement "plVar45 = (lang_statement_list_type *)(bVar57 + 0x18);" (assignment_expression "plVar45 = (lang_statement_list_type *)(bVar57 + 0x18)" identifier = (cast_expression "(lang_statement_list_type *)(bVar57 + 0x18)" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar57 + 0x18)" ( (binary_expression "bVar57 + 0x18" identifier + number_literal) )))) ;) (expression_statement "plVar55 = *(lang_statement_union **)(bVar57 + 0x18);" (assignment_expression "plVar55 = *(lang_statement_union **)(bVar57 + 0x18)" identifier = (pointer_expression "*(lang_statement_union **)(bVar57 + 0x18)" * (cast_expression "(lang_statement_union **)(bVar57 + 0x18)" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(bVar57 + 0x18)" ( (binary_expression "bVar57 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000295f1;" goto statement_identifier ;) })) (expression_statement "plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail;" (assignment_expression "plVar51 = (lang_statement_union *)(plVar51->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar51->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).children.tail" (field_expression "(plVar51->wild_statement).children" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "local_50 = plVar58;" (assignment_expression "local_50 = plVar58" identifier = identifier) ;) }) while (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_000295b0:\n          if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }" statement_identifier : (if_statement "if (local_50 != (lang_statement_union *)0x0) {\n            plVar55 = local_50;\n          }" if (parenthesized_expression "(local_50 != (lang_statement_union *)0x0)" ( (binary_expression "local_50 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            plVar55 = local_50;\n          }" { (expression_statement "plVar55 = local_50;" (assignment_expression "plVar55 = local_50" identifier = identifier) ;) }))) })) (expression_statement "plVar45 = &(plVar55->wild_statement).children;" (assignment_expression "plVar45 = &(plVar55->wild_statement).children" identifier = (pointer_expression "&(plVar55->wild_statement).children" & (field_expression "(plVar55->wild_statement).children" (parenthesized_expression "(plVar55->wild_statement)" ( (field_expression "plVar55->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (for_statement "for (plVar55 = plVar45->head; plVar55 != (lang_statement_union *)0x0;\n            plVar55 = (plVar55->wild_statement).children.head) {\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }" for ( (assignment_expression "plVar55 = plVar45->head" identifier = (field_expression "plVar45->head" identifier -> field_identifier)) ; (binary_expression "plVar55 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar55 = (plVar55->wild_statement).children.head" identifier = (field_expression "(plVar55->wild_statement).children.head" (field_expression "(plVar55->wild_statement).children" (parenthesized_expression "(plVar55->wild_statement)" ( (field_expression "plVar55->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n          if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }\n          plVar45 = &(plVar55->wild_statement).children;\n        }" { (if_statement "if ((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)) {\n            plVar55 = plVar45->head;\n            break;\n          }" if (parenthesized_expression "((((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0))" ( (binary_expression "(((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar55->reloc_statement).section)->target_index == 0)" (parenthesized_expression "(((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0)" ( (binary_expression "((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000) == 0" (parenthesized_expression "((uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000)" ( (binary_expression "(uint)(plVar55->wild_statement).walk_wild_section_handler & 0x4000" (field_expression "(uint)(plVar55->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar55->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar55->wild_statement)" ( (field_expression "plVar55->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((plVar55->reloc_statement).section)->target_index == 0)" ( (binary_expression "((plVar55->reloc_statement).section)->target_index == 0" (field_expression "((plVar55->reloc_statement).section)->target_index" (parenthesized_expression "((plVar55->reloc_statement).section)" ( (field_expression "(plVar55->reloc_statement).section" (parenthesized_expression "(plVar55->reloc_statement)" ( (field_expression "plVar55->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n            plVar55 = plVar45->head;\n            break;\n          }" { (expression_statement "plVar55 = plVar45->head;" (assignment_expression "plVar55 = plVar45->head" identifier = (field_expression "plVar45->head" identifier -> field_identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "plVar45 = &(plVar55->wild_statement).children;" (assignment_expression "plVar45 = &(plVar55->wild_statement).children" identifier = (pointer_expression "&(plVar55->wild_statement).children" & (field_expression "(plVar55->wild_statement).children" (parenthesized_expression "(plVar55->wild_statement)" ( (field_expression "plVar55->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) })) (labeled_statement "LAB_000295f1:\n        local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;" statement_identifier : (expression_statement "local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset;" (assignment_expression "local_50 = (lang_statement_union *)&(plVar47->data_statement).output_offset" identifier = (cast_expression "(lang_statement_union *)&(plVar47->data_statement).output_offset" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar47->data_statement).output_offset" & (field_expression "(plVar47->data_statement).output_offset" (parenthesized_expression "(plVar47->data_statement)" ( (field_expression "plVar47->data_statement" identifier -> field_identifier) )) . field_identifier)))) ;)) (if_statement "if (pbVar6 == (bfd *)0x0) {\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }\n        else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }" if (parenthesized_expression "(pbVar6 == (bfd *)0x0)" ( (binary_expression "pbVar6 == (bfd *)0x0" identifier == (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          plVar45->head = plVar47;\n          plVar51 = (plVar47->wild_statement).children.head;\n          (plVar47->data_statement).output_offset = (bfd_vma)plVar55;\n          plVar47 = plVar51;\n        }" { (expression_statement "plVar45->head = plVar47;" (assignment_expression "plVar45->head = plVar47" (field_expression "plVar45->head" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar51 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar51 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(plVar47->data_statement).output_offset = (bfd_vma)plVar55;" (assignment_expression "(plVar47->data_statement).output_offset = (bfd_vma)plVar55" (field_expression "(plVar47->data_statement).output_offset" (parenthesized_expression "(plVar47->data_statement)" ( (field_expression "plVar47->data_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_vma)plVar55" ( (type_descriptor "bfd_vma" type_identifier) ) identifier)) ;) (expression_statement "plVar47 = plVar51;" (assignment_expression "plVar47 = plVar51" identifier = identifier) ;) }) (else_clause "else {\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }" else (compound_statement "{\n          bVar57 = (plVar47->data_statement).output_offset;\n          if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }\n          plVar45->head = plVar47;\n          plVar47 = *(lang_statement_union **)local_50;\n          *(lang_statement_union **)local_50 = plVar55;\n          if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }\n        }" { (expression_statement "bVar57 = (plVar47->data_statement).output_offset;" (assignment_expression "bVar57 = (plVar47->data_statement).output_offset" identifier = (field_expression "(plVar47->data_statement).output_offset" (parenthesized_expression "(plVar47->data_statement)" ( (field_expression "plVar47->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (bVar57 != 0) {\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }" if (parenthesized_expression "(bVar57 != 0)" ( (binary_expression "bVar57 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }\n          }" { (expression_statement "pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);" (assignment_expression "pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" identifier = (pointer_expression "*(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" * (cast_expression "(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(bVar57 + 0x10) + 0x88)" ( (binary_expression "*(int *)(bVar57 + 0x10) + 0x88" (pointer_expression "*(int *)(bVar57 + 0x10)" * (cast_expression "(int *)(bVar57 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar57 + 0x10)" ( (binary_expression "bVar57 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (pbVar6 == pbVar65) {\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }" while (parenthesized_expression "(pbVar6 == pbVar65)" ( (binary_expression "pbVar6 == pbVar65" identifier == identifier) )) (compound_statement "{\n              local_50 = (lang_statement_union *)(bVar57 + 0x18);\n              bVar57 = *(bfd_vma *)(bVar57 + 0x18);\n              if (bVar57 == 0) break;\n              pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);\n            }" { (expression_statement "local_50 = (lang_statement_union *)(bVar57 + 0x18);" (assignment_expression "local_50 = (lang_statement_union *)(bVar57 + 0x18)" identifier = (cast_expression "(lang_statement_union *)(bVar57 + 0x18)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar57 + 0x18)" ( (binary_expression "bVar57 + 0x18" identifier + number_literal) )))) ;) (expression_statement "bVar57 = *(bfd_vma *)(bVar57 + 0x18);" (assignment_expression "bVar57 = *(bfd_vma *)(bVar57 + 0x18)" identifier = (pointer_expression "*(bfd_vma *)(bVar57 + 0x18)" * (cast_expression "(bfd_vma *)(bVar57 + 0x18)" ( (type_descriptor "bfd_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar57 + 0x18)" ( (binary_expression "bVar57 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (bVar57 == 0) break;" if (parenthesized_expression "(bVar57 == 0)" ( (binary_expression "bVar57 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88);" (assignment_expression "pbVar65 = *(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" identifier = (pointer_expression "*(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" * (cast_expression "(bfd **)(*(int *)(bVar57 + 0x10) + 0x88)" ( (type_descriptor "bfd **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(bVar57 + 0x10) + 0x88)" ( (binary_expression "*(int *)(bVar57 + 0x10) + 0x88" (pointer_expression "*(int *)(bVar57 + 0x10)" * (cast_expression "(int *)(bVar57 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar57 + 0x10)" ( (binary_expression "bVar57 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "plVar45->head = plVar47;" (assignment_expression "plVar45->head = plVar47" (field_expression "plVar45->head" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar47 = *(lang_statement_union **)local_50;" (assignment_expression "plVar47 = *(lang_statement_union **)local_50" identifier = (pointer_expression "*(lang_statement_union **)local_50" * (cast_expression "(lang_statement_union **)local_50" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(lang_statement_union **)local_50 = plVar55;" (assignment_expression "*(lang_statement_union **)local_50 = plVar55" (pointer_expression "*(lang_statement_union **)local_50" * (cast_expression "(lang_statement_union **)local_50" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if (pbVar6->usrdata != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }" if (parenthesized_expression "(pbVar6->usrdata != (void *)0x0)" ( (binary_expression "pbVar6->usrdata != (void *)0x0" (field_expression "pbVar6->usrdata" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);\n          }" { (expression_statement "*(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18);" (assignment_expression "*(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18) =\n                 (lang_data_statement_type *)((int)local_50 + -0x18)" (pointer_expression "*(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18)" * (cast_expression "(lang_data_statement_type **)((int)pbVar6->usrdata + 0x18)" ( (type_descriptor "lang_data_statement_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pbVar6->usrdata + 0x18)" ( (binary_expression "(int)pbVar6->usrdata + 0x18" (cast_expression "(int)pbVar6->usrdata" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar6->usrdata" identifier -> field_identifier)) + number_literal) )))) = (cast_expression "(lang_data_statement_type *)((int)local_50 + -0x18)" ( (type_descriptor "lang_data_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + -0x18)" ( (binary_expression "(int)local_50 + -0x18" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) }))) })) })) })) (if_statement "if (link_info.gc_sym_list != (bfd_sym_chain *)0x0) {\n    info_assert("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(link_info.gc_sym_list != (bfd_sym_chain *)0x0)" ( (binary_expression "link_info.gc_sym_list != (bfd_sym_chain *)0x0" (field_expression "link_info.gc_sym_list" identifier . field_identifier) != (cast_expression "(bfd_sym_chain *)0x0" ( (type_descriptor "bfd_sym_chain *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    info_assert("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "info_assert("../../ld/ldlang.c",0x1c67);" (call_expression "info_assert("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "link_info.gc_sym_list = &entry_symbol;" (assignment_expression "link_info.gc_sym_list = &entry_symbol" (field_expression "link_info.gc_sym_list" identifier . field_identifier) = (pointer_expression "&entry_symbol" & identifier)) ;) (if_statement "if (entry_symbol.name == (char *)0x0) {\n    link_info.gc_sym_list = entry_symbol.next;\n    if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }\n  }" if (parenthesized_expression "(entry_symbol.name == (char *)0x0)" ( (binary_expression "entry_symbol.name == (char *)0x0" (field_expression "entry_symbol.name" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    link_info.gc_sym_list = entry_symbol.next;\n    if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }\n  }" { (expression_statement "link_info.gc_sym_list = entry_symbol.next;" (assignment_expression "link_info.gc_sym_list = entry_symbol.next" (field_expression "link_info.gc_sym_list" identifier . field_identifier) = (field_expression "entry_symbol.next" identifier . field_identifier)) ;) (if_statement "if (entry_symbol_default != (char *)0x0) {\n      lang_add_gc_name(entry_symbol_default);\n    }" if (parenthesized_expression "(entry_symbol_default != (char *)0x0)" ( (binary_expression "entry_symbol_default != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lang_add_gc_name(entry_symbol_default);\n    }" { (expression_statement "lang_add_gc_name(entry_symbol_default);" (call_expression "lang_add_gc_name(entry_symbol_default)" identifier (argument_list "(entry_symbol_default)" ( identifier ))) ;) })) })) (if_statement "if (link_info.init_function != (char *)0x0) {\n    lang_add_gc_name(link_info.init_function);\n  }" if (parenthesized_expression "(link_info.init_function != (char *)0x0)" ( (binary_expression "link_info.init_function != (char *)0x0" (field_expression "link_info.init_function" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lang_add_gc_name(link_info.init_function);\n  }" { (expression_statement "lang_add_gc_name(link_info.init_function);" (call_expression "lang_add_gc_name(link_info.init_function)" identifier (argument_list "(link_info.init_function)" ( (field_expression "link_info.init_function" identifier . field_identifier) ))) ;) })) (if_statement "if (link_info.fini_function != (char *)0x0) {\n    lang_add_gc_name(link_info.fini_function);\n  }" if (parenthesized_expression "(link_info.fini_function != (char *)0x0)" ( (binary_expression "link_info.fini_function != (char *)0x0" (field_expression "link_info.fini_function" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    lang_add_gc_name(link_info.fini_function);\n  }" { (expression_statement "lang_add_gc_name(link_info.fini_function);" (call_expression "lang_add_gc_name(link_info.fini_function)" identifier (argument_list "(link_info.fini_function)" ( (field_expression "link_info.fini_function" identifier . field_identifier) ))) ;) })) (expression_statement "ldemul_after_open();" (call_expression "ldemul_after_open()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar24);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }" if (parenthesized_expression "((config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0))" ( (binary_expression "(config.map_file != (FILE *)0x0) && (asneeded_list_head != (asneeded_minfo *)0x0)" (parenthesized_expression "(config.map_file != (FILE *)0x0)" ( (binary_expression "config.map_file != (FILE *)0x0" (field_expression "config.map_file" identifier . field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(asneeded_list_head != (asneeded_minfo *)0x0)" ( (binary_expression "asneeded_list_head != (asneeded_minfo *)0x0" identifier != (cast_expression "(asneeded_minfo *)0x0" ( (type_descriptor "asneeded_minfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar24);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }" { (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5)" identifier (argument_list "(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5)" ( number_literal , (string_literal ""\nAs-needed library included to satisfy reference by file (symbol)\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "minfo(pcVar24);" (call_expression "minfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) (for_statement "for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }" for ( (assignment_expression "paVar5 = asneeded_list_head" identifier = identifier) ; (binary_expression "paVar5 != (asneeded_minfo *)0x0" identifier != (cast_expression "(asneeded_minfo *)0x0" ( (type_descriptor "asneeded_minfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar5 = paVar5->next" identifier = (field_expression "paVar5->next" identifier -> field_identifier)) ) (compound_statement "{\n      minfo("%s",paVar5->soname);\n      sVar25 = strlen(paVar5->soname);\n      if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }\n      do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }" { (expression_statement "minfo("%s",paVar5->soname);" (call_expression "minfo("%s",paVar5->soname)" identifier (argument_list "("%s",paVar5->soname)" ( (string_literal ""%s"" " string_content ") , (field_expression "paVar5->soname" identifier -> field_identifier) ))) ;) (expression_statement "sVar25 = strlen(paVar5->soname);" (assignment_expression "sVar25 = strlen(paVar5->soname)" identifier = (call_expression "strlen(paVar5->soname)" identifier (argument_list "(paVar5->soname)" ( (field_expression "paVar5->soname" identifier -> field_identifier) )))) ;) (if_statement "if (0x1c < sVar25) {\n        print_nl();\n        sVar25 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar25)" ( (binary_expression "0x1c < sVar25" number_literal < identifier) )) (compound_statement "{\n        print_nl();\n        sVar25 = 0;\n      }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar25 = 0;" (assignment_expression "sVar25 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        print_space();\n        sVar25 = sVar25 + 1;\n      } while (sVar25 != 0x1e);" do (compound_statement "{\n        print_space();\n        sVar25 = sVar25 + 1;\n      }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar25 = sVar25 + 1;" (assignment_expression "sVar25 = sVar25 + 1" identifier = (binary_expression "sVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar25 != 0x1e)" ( (binary_expression "sVar25 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }" if (parenthesized_expression "(paVar5->ref != (bfd *)0x0)" ( (binary_expression "paVar5->ref != (bfd *)0x0" (field_expression "paVar5->ref" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        minfo("%pB ",paVar5->ref);\n      }" { (expression_statement "minfo("%pB ",paVar5->ref);" (call_expression "minfo("%pB ",paVar5->ref)" identifier (argument_list "("%pB ",paVar5->ref)" ( (string_literal ""%pB "" " string_content ") , (field_expression "paVar5->ref" identifier -> field_identifier) ))) ;) })) (expression_statement "minfo("(%pT)\n",paVar5->name);" (call_expression "minfo("(%pT)\n",paVar5->name)" identifier (argument_list "("(%pT)\n",paVar5->name)" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (field_expression "paVar5->name" identifier -> field_identifier) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar47 = file_chain.head;" (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (labeled_statement "joined_r0x0002800a:\n  if (plVar47 != (lang_statement_union *)0x0) {\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (plVar47 != (lang_statement_union *)0x0) {\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(plVar47 != (lang_statement_union *)0x0)" ( (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      if (plVar47 == (lang_statement_union *)0x0) break;\n    }" { (if_statement "if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }\n      else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }" if (parenthesized_expression "(((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0)" ( (binary_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0" (parenthesized_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar47->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pbVar6 = (plVar47->input_statement).the_bfd;\n        iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n        pbVar65 = link_info.output_bfd;\n        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }\n        if (command_line.warn_mismatch == 0) goto LAB_000280c0;\n        uVar61 = bfd_printable_name(link_info.output_bfd);\n        uVar31 = bfd_printable_name(pbVar6);\n        pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);\n        einfo(pcVar24,uVar31,pbVar6,uVar61);\n        plVar47 = (plVar47->wild_statement).children.head;\n      }" { (expression_statement "pbVar6 = (plVar47->input_statement).the_bfd;" (assignment_expression "pbVar6 = (plVar47->input_statement).the_bfd" identifier = (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);" (assignment_expression "iVar23 = bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch)" identifier = (call_expression "bfd_arch_get_compatible\n                           (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch)" identifier (argument_list "(pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch)" ( identifier , (field_expression "link_info.output_bfd" identifier . field_identifier) , (field_expression "command_line.accept_unknown_input_arch" identifier . field_identifier) )))) ;) (expression_statement "pbVar65 = link_info.output_bfd;" (assignment_expression "pbVar65 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }" if (parenthesized_expression "(((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0))" ( (binary_expression "((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)" (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((link_info._3_1_ & 8) != 0)" ( (binary_expression "(link_info._3_1_ & 8) != 0" (parenthesized_expression "(link_info._3_1_ & 8)" ( (binary_expression "link_info._3_1_ & 8" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }\n        }" { (if_statement "if (iVar23 != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\n            if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" { (expression_statement "pbVar30 = pbVar6->xvec;" (assignment_expression "pbVar30 = pbVar6->xvec" identifier = (field_expression "pbVar6->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar43 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar43 = (link_info.output_bfd)->xvec" identifier = (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if ((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))\n            goto LAB_000282ef;" if (parenthesized_expression "((pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0))" ( (binary_expression "(pbVar30->flavour != pbVar43->flavour) && ((pbVar6->field_0x28 & 0x20) != 0)" (parenthesized_expression "(pbVar30->flavour != pbVar43->flavour)" ( (binary_expression "pbVar30->flavour != pbVar43->flavour" (field_expression "pbVar30->flavour" identifier -> field_identifier) != (field_expression "pbVar43->flavour" identifier -> field_identifier)) )) && (parenthesized_expression "((pbVar6->field_0x28 & 0x20) != 0)" ( (binary_expression "(pbVar6->field_0x28 & 0x20) != 0" (parenthesized_expression "(pbVar6->field_0x28 & 0x20)" ( (binary_expression "pbVar6->field_0x28 & 0x20" (field_expression "pbVar6->field_0x28" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000282ef;" goto statement_identifier ;)) (goto_statement "goto LAB_00028063;" goto statement_identifier ;) })) (if_statement "if ((pbVar6->field_0x28 & 0x20) != 0) {\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }" if (parenthesized_expression "((pbVar6->field_0x28 & 0x20) != 0)" ( (binary_expression "(pbVar6->field_0x28 & 0x20) != 0" (parenthesized_expression "(pbVar6->field_0x28 & 0x20)" ( (binary_expression "pbVar6->field_0x28 & 0x20" (field_expression "pbVar6->field_0x28" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            pbVar30 = pbVar6->xvec;\n            pbVar43 = (link_info.output_bfd)->xvec;\nLAB_000282ef:\n            pcVar24 = pbVar43->name;\n            pcVar28 = pbVar30->name;\n            fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);\n            einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);\n            goto joined_r0x0002832b;\n          }" { (expression_statement "pbVar30 = pbVar6->xvec;" (assignment_expression "pbVar30 = pbVar6->xvec" identifier = (field_expression "pbVar6->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar43 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar43 = (link_info.output_bfd)->xvec" identifier = (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (labeled_statement "LAB_000282ef:\n            pcVar24 = pbVar43->name;" statement_identifier : (expression_statement "pcVar24 = pbVar43->name;" (assignment_expression "pcVar24 = pbVar43->name" identifier = (field_expression "pbVar43->name" identifier -> field_identifier)) ;)) (expression_statement "pcVar28 = pbVar30->name;" (assignment_expression "pcVar28 = pbVar30->name" identifier = (field_expression "pbVar30->name" identifier -> field_identifier)) ;) (expression_statement "fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5);" (assignment_expression "fmt = (char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" identifier (argument_list "(0,\n                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                                    ,5)" ( number_literal , (string_literal ""%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65);" (call_expression "einfo(fmt,pcVar28,pbVar6,pcVar24,pbVar65)" identifier (argument_list "(fmt,pcVar28,pbVar6,pcVar24,pbVar65)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0002832b;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }" else (compound_statement "{\njoined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }\n        }" { (labeled_statement "joined_r0x0002832b:\n          if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }" statement_identifier : (if_statement "if (iVar23 != 0) {\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;\n            uVar61 = 0;\n            if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }\n            bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;\n            if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar61);\n            goto LAB_000280c0;\n          }" { (labeled_statement "LAB_00028063:\n            if (pbVar6->section_count == 0) goto LAB_000280c0;" statement_identifier : (if_statement "if (pbVar6->section_count == 0) goto LAB_000280c0;" if (parenthesized_expression "(pbVar6->section_count == 0)" ( (binary_expression "pbVar6->section_count == 0" (field_expression "pbVar6->section_count" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;))) (expression_statement "uVar61 = 0;" (assignment_expression "uVar61 = 0" identifier = number_literal) ;) (if_statement "if (command_line.warn_mismatch == 0) {\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }" if (parenthesized_expression "(command_line.warn_mismatch == 0)" ( (binary_expression "command_line.warn_mismatch == 0" (field_expression "command_line.warn_mismatch" identifier . field_identifier) == number_literal) )) (compound_statement "{\n              uVar61 = bfd_set_error_handler(ignore_bfd_errors);\n            }" { (expression_statement "uVar61 = bfd_set_error_handler(ignore_bfd_errors);" (assignment_expression "uVar61 = bfd_set_error_handler(ignore_bfd_errors)" identifier = (call_expression "bfd_set_error_handler(ignore_bfd_errors)" identifier (argument_list "(ignore_bfd_errors)" ( identifier )))) ;) })) (expression_statement "bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)\n            ;" (assignment_expression "bVar26 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)" identifier = (call_expression "(*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data" * (field_expression "(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar6,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) )))) ;) (if_statement "if (bVar26 == 0) {\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }" if (parenthesized_expression "(bVar26 == 0)" ( (binary_expression "bVar26 == 0" identifier == number_literal) )) (compound_statement "{\n              if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }\n            }" { (if_statement "if (command_line.warn_mismatch != 0) {\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }" if (parenthesized_expression "(command_line.warn_mismatch != 0)" ( (binary_expression "command_line.warn_mismatch != 0" (field_expression "command_line.warn_mismatch" identifier . field_identifier) != number_literal) )) (compound_statement "{\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);\n                einfo(pcVar24,pbVar6);\n                goto LAB_00028ea4;\n              }" { (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%X%P: failed to merge target specific data of file %pB\n"\n                                            ,5)" ( number_literal , (string_literal ""%X%P: failed to merge target specific data of file %pB\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,pbVar6);" (call_expression "einfo(pcVar24,pbVar6)" identifier (argument_list "(pcVar24,pbVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00028ea4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }" else (compound_statement "{\nLAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;\n            }" { (labeled_statement "LAB_00028ea4:\n              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;" statement_identifier : (if_statement "if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;" if (parenthesized_expression "(command_line.warn_mismatch != 0)" ( (binary_expression "command_line.warn_mismatch != 0" (field_expression "command_line.warn_mismatch" identifier . field_identifier) != number_literal) )) (goto_statement "goto code_r0x00028eb3;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler(uVar61);" (call_expression "bfd_set_error_handler(uVar61)" identifier (argument_list "(uVar61)" ( identifier ))) ;) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;) }))) }))) (if_statement "if (command_line.warn_mismatch == 0) goto LAB_000280c0;" if (parenthesized_expression "(command_line.warn_mismatch == 0)" ( (binary_expression "command_line.warn_mismatch == 0" (field_expression "command_line.warn_mismatch" identifier . field_identifier) == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;)) (expression_statement "uVar61 = bfd_printable_name(link_info.output_bfd);" (assignment_expression "uVar61 = bfd_printable_name(link_info.output_bfd)" identifier = (call_expression "bfd_printable_name(link_info.output_bfd)" identifier (argument_list "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )))) ;) (expression_statement "uVar31 = bfd_printable_name(pbVar6);" (assignment_expression "uVar31 = bfd_printable_name(pbVar6)" identifier = (call_expression "bfd_printable_name(pbVar6)" identifier (argument_list "(pbVar6)" ( identifier )))) ;) (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5)" identifier (argument_list "(0,\n                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                    ,5)" ( number_literal , (string_literal ""%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,uVar31,pbVar6,uVar61);" (call_expression "einfo(pcVar24,uVar31,pbVar6,uVar61)" identifier (argument_list "(pcVar24,uVar31,pbVar6,uVar61)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "plVar47 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) }) (else_clause "else {\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }" else (compound_statement "{\nLAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;\n      }" { (labeled_statement "LAB_000280c0:\n        plVar47 = (plVar47->wild_statement).children.head;" statement_identifier : (expression_statement "plVar47 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) }))) (if_statement "if (plVar47 == (lang_statement_union *)0x0) break;" if (parenthesized_expression "(plVar47 == (lang_statement_union *)0x0)" ( (binary_expression "plVar47 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);\n    (version->globals).list = orig;\n    (version->locals).list = pbVar29;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);\n  }" if (parenthesized_expression "(command_line.version_exports_section != (char *)0x0)" ( (binary_expression "command_line.version_exports_section != (char *)0x0" (field_expression "command_line.version_exports_section" identifier . field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    orig = (bfd_elf_version_expr *)0x0;\n    for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);\n    version = (bfd_elf_version_tree *)xcalloc(1,0x3c);\n    (version->globals).list = orig;\n    (version->locals).list = pbVar29;\n    version->match = lang_vers_match;\n    version->name_indx = 0xffffffff;\n    lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);\n  }" { (expression_statement "orig = (bfd_elf_version_expr *)0x0;" (assignment_expression "orig = (bfd_elf_version_expr *)0x0" identifier = (cast_expression "(bfd_elf_version_expr *)0x0" ( (type_descriptor "bfd_elf_version_expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (plVar47->wild_statement).children.head) {\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }" for ( (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ; (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }\n    }" { (while_statement "while (iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0) {\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }" while (parenthesized_expression "(iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0)" ( (comma_expression "iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports"),\n            iVar23 != 0" (assignment_expression "iVar23 = bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports")" identifier = (call_expression "bfd_get_section_by_name((plVar47->wild_statement).section_list,".exports")" identifier (argument_list "((plVar47->wild_statement).section_list,".exports")" ( (field_expression "(plVar47->wild_statement).section_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) , (string_literal "".exports"" " string_content ") )))) , (binary_expression "iVar23 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar38 = *(int *)(iVar23 + 0x24);\n        pcVar24 = (char *)xmalloc(iVar38);\n        iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);\n        if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }\n        pcVar28 = pcVar24 + iVar38;\n        for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }\n        plVar47 = (plVar47->wild_statement).children.head;\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;\n        if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;\n      }" { (expression_statement "iVar38 = *(int *)(iVar23 + 0x24);" (assignment_expression "iVar38 = *(int *)(iVar23 + 0x24)" identifier = (pointer_expression "*(int *)(iVar23 + 0x24)" * (cast_expression "(int *)(iVar23 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x24)" ( (binary_expression "iVar23 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pcVar24 = (char *)xmalloc(iVar38);" (assignment_expression "pcVar24 = (char *)xmalloc(iVar38)" identifier = (cast_expression "(char *)xmalloc(iVar38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar38)" identifier (argument_list "(iVar38)" ( identifier ))))) ;) (expression_statement "iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38);" (assignment_expression "iVar27 = bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38)" identifier = (call_expression "bfd_get_section_contents\n                           ((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38)" identifier (argument_list "((plVar47->wild_statement).section_list,iVar23,pcVar24,0,0,iVar38)" ( (field_expression "(plVar47->wild_statement).section_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar27 == 0) {\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          einfo(pcVar28,iVar23);\n        }" { (expression_statement "pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier (argument_list "(0,"%X%P: unable to read .exports section contents\n",5)" ( number_literal , (string_literal ""%X%P: unable to read .exports section contents\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,iVar23);" (call_expression "einfo(pcVar28,iVar23)" identifier (argument_list "(pcVar28,iVar23)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar28 = pcVar24 + iVar38;" (assignment_expression "pcVar28 = pcVar24 + iVar38" identifier = (binary_expression "pcVar24 + iVar38" identifier + identifier)) ;) (for_statement "for (; pcVar24 < pcVar28; pcVar24 = pcVar24 + sVar25 + 1) {\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }" for ( ; (binary_expression "pcVar24 < pcVar28" identifier < identifier) ; (assignment_expression "pcVar24 = pcVar24 + sVar25 + 1" identifier = (binary_expression "pcVar24 + sVar25 + 1" (binary_expression "pcVar24 + sVar25" identifier + identifier) + number_literal)) ) (compound_statement "{\n          orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);\n          sVar25 = strlen(pcVar24);\n        }" { (expression_statement "orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0);" (assignment_expression "orig = lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0)" identifier = (call_expression "lang_new_vers_pattern(orig,pcVar24,(char *)0x0,0)" identifier (argument_list "(orig,pcVar24,(char *)0x0,0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (expression_statement "sVar25 = strlen(pcVar24);" (assignment_expression "sVar25 = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) })) (expression_statement "plVar47 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar23 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (plVar47 == (lang_statement_union *)0x0) goto LAB_000281aa;" if (parenthesized_expression "(plVar47 == (lang_statement_union *)0x0)" ( (binary_expression "plVar47 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000281aa;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000281aa:\n    pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);" statement_identifier : (expression_statement "pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);" (assignment_expression "pbVar29 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0)" identifier = (call_expression "lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0)" identifier (argument_list "((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0)" ( (cast_expression "(bfd_elf_version_expr *)0x0" ( (type_descriptor "bfd_elf_version_expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal ""*"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;)) (expression_statement "version = (bfd_elf_version_tree *)xcalloc(1,0x3c);" (assignment_expression "version = (bfd_elf_version_tree *)xcalloc(1,0x3c)" identifier = (cast_expression "(bfd_elf_version_tree *)xcalloc(1,0x3c)" ( (type_descriptor "bfd_elf_version_tree *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xcalloc(1,0x3c)" identifier (argument_list "(1,0x3c)" ( number_literal , number_literal ))))) ;) (expression_statement "(version->globals).list = orig;" (assignment_expression "(version->globals).list = orig" (field_expression "(version->globals).list" (parenthesized_expression "(version->globals)" ( (field_expression "version->globals" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(version->locals).list = pbVar29;" (assignment_expression "(version->locals).list = pbVar29" (field_expression "(version->locals).list" (parenthesized_expression "(version->locals)" ( (field_expression "version->locals" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "version->match = lang_vers_match;" (assignment_expression "version->match = lang_vers_match" (field_expression "version->match" identifier -> field_identifier) = identifier) ;) (expression_statement "version->name_indx = 0xffffffff;" (assignment_expression "version->name_indx = 0xffffffff" (field_expression "version->name_indx" identifier -> field_identifier) = number_literal) ;) (expression_statement "lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0);" (call_expression "lang_register_vers_node\n              (command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0)" identifier (argument_list "(command_line.version_exports_section,version,(bfd_elf_version_deps *)0x0)" ( (field_expression "command_line.version_exports_section" identifier . field_identifier) , identifier , (cast_expression "(bfd_elf_version_deps *)0x0" ( (type_descriptor "bfd_elf_version_deps *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "ldctor_build_sets();" (call_expression "ldctor_build_sets()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar17 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if (config.build_constructors != 0) {\n    local_40 = link_info.input_bfds;\n    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }\n  }" if (parenthesized_expression "(config.build_constructors != 0)" ( (binary_expression "config.build_constructors != 0" (field_expression "config.build_constructors" identifier . field_identifier) != number_literal) )) (compound_statement "{\n    local_40 = link_info.input_bfds;\n    cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }\n  }" { (expression_statement "local_40 = link_info.input_bfds;" (assignment_expression "local_40 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (expression_statement "cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char;" (assignment_expression "cVar22 = (link_info.output_bfd)->xvec->symbol_leading_char" identifier = (field_expression "(link_info.output_bfd)->xvec->symbol_leading_char" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) ;) (if_statement "if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }" if (parenthesized_expression "(link_info.input_bfds != (bfd *)0x0)" ( (binary_expression "link_info.input_bfds != (bfd *)0x0" (field_expression "link_info.input_bfds" identifier . field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);\n    }" { (do_statement "do {\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      } while (local_40 != (bfd *)0x0);" do (compound_statement "{\n        for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }\nLAB_000299b0:\n        local_40 = (local_40->link).next;\n      }" { (for_statement "for (pbVar34 = local_40->sections; pbVar34 != (bfd_section *)0x0; pbVar34 = pbVar34->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }" for ( (assignment_expression "pbVar34 = local_40->sections" identifier = (field_expression "local_40->sections" identifier -> field_identifier)) ; (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar34 = pbVar34->next" identifier = (field_expression "pbVar34->next" identifier -> field_identifier)) ) (compound_statement "{\n          while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);\n          pcVar24 = (char *)xmalloc(sVar25 + 10);\n          *pcVar24 = cVar22;\n          sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar24,pbVar34);\n          pcVar24[1] = cVar22;\n          builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar24 + 1,pbVar34);\n          free(pcVar24);\n        }" { (while_statement "while( true ) {\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar9 = (byte *)pbVar34->name;\n            bVar42 = *pbVar9;\n            if (bVar42 == 0) break;\n            bVar3 = puVar17[(uint)bVar42 * 2];\n            pbVar40 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }\n            pbVar34 = pbVar34->next;\n            if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;\n          }" { (expression_statement "pbVar9 = (byte *)pbVar34->name;" (assignment_expression "pbVar9 = (byte *)pbVar34->name" identifier = (cast_expression "(byte *)pbVar34->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar34->name" identifier -> field_identifier))) ;) (expression_statement "bVar42 = *pbVar9;" (assignment_expression "bVar42 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar42 == 0) break;" if (parenthesized_expression "(bVar42 == 0)" ( (binary_expression "bVar42 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar3 = puVar17[(uint)bVar42 * 2];" (assignment_expression "bVar3 = puVar17[(uint)bVar42 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar42 * 2]" identifier [ (binary_expression "(uint)bVar42 * 2" (cast_expression "(uint)bVar42" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar40 = pbVar9;" (assignment_expression "pbVar40 = pbVar9" identifier = identifier) ;) (while_statement "while (((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))) {\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }" while (parenthesized_expression "(((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f)))" ( (parenthesized_expression "((bVar3 & 0x8c) != 0 || (bVar42 == 0x5f))" ( (binary_expression "(bVar3 & 0x8c) != 0 || (bVar42 == 0x5f)" (binary_expression "(bVar3 & 0x8c) != 0" (parenthesized_expression "(bVar3 & 0x8c)" ( (binary_expression "bVar3 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar42 == 0x5f)" ( (binary_expression "bVar42 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar40 = pbVar40 + 1;\n              bVar42 = *pbVar40;\n              if (bVar42 == 0) goto LAB_000299d0;\n              bVar3 = puVar17[(uint)bVar42 * 2];\n            }" { (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar40;" (assignment_expression "bVar42 = *pbVar40" identifier = (pointer_expression "*pbVar40" * identifier)) ;) (if_statement "if (bVar42 == 0) goto LAB_000299d0;" if (parenthesized_expression "(bVar42 == 0)" ( (binary_expression "bVar42 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000299d0;" goto statement_identifier ;)) (expression_statement "bVar3 = puVar17[(uint)bVar42 * 2];" (assignment_expression "bVar3 = puVar17[(uint)bVar42 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar42 * 2]" identifier [ (binary_expression "(uint)bVar42 * 2" (cast_expression "(uint)bVar42" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "pbVar34 = pbVar34->next;" (assignment_expression "pbVar34 = pbVar34->next" identifier = (field_expression "pbVar34->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar34 == (bfd_section *)0x0) goto LAB_000299b0;" if (parenthesized_expression "(pbVar34 == (bfd_section *)0x0)" ( (binary_expression "pbVar34 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000299b0;" goto statement_identifier ;)) })) (labeled_statement "LAB_000299d0:\n          sVar25 = strlen((char *)pbVar9);" statement_identifier : (expression_statement "sVar25 = strlen((char *)pbVar9);" (assignment_expression "sVar25 = strlen((char *)pbVar9)" identifier = (call_expression "strlen((char *)pbVar9)" identifier (argument_list "((char *)pbVar9)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar24 = (char *)xmalloc(sVar25 + 10);" (assignment_expression "pcVar24 = (char *)xmalloc(sVar25 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar25 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar25 + 10)" identifier (argument_list "(sVar25 + 10)" ( (binary_expression "sVar25 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar24 = cVar22;" (assignment_expression "*pcVar24 = cVar22" (pointer_expression "*pcVar24" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9);" (call_expression "sprintf(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9)" identifier (argument_list "(pcVar24 + (cVar22 != '\0'),"__start_%s",pbVar9)" ( (binary_expression "pcVar24 + (cVar22 != '\0')" identifier + (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar24,pbVar34);" (call_expression "lang_define_start_stop(pcVar24,pbVar34)" identifier (argument_list "(pcVar24,pbVar34)" ( identifier , identifier ))) ;) (expression_statement "pcVar24[1] = cVar22;" (assignment_expression "pcVar24[1] = cVar22" (subscript_expression "pcVar24[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6)" identifier (argument_list "(pcVar24 + (2 - (uint)(cVar22 == '\0')),"__stop",6)" ( (binary_expression "pcVar24 + (2 - (uint)(cVar22 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar22 == '\0'))" ( (binary_expression "2 - (uint)(cVar22 == '\0')" number_literal - (call_expression "(uint)(cVar22 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar22 == '\0')" ( (binary_expression "cVar22 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar24 + 1,pbVar34);" (call_expression "lang_define_start_stop(pcVar24 + 1,pbVar34)" identifier (argument_list "(pcVar24 + 1,pbVar34)" ( (binary_expression "pcVar24 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar24);" (call_expression "free(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) })) (labeled_statement "LAB_000299b0:\n        local_40 = (local_40->link).next;" statement_identifier : (expression_statement "local_40 = (local_40->link).next;" (assignment_expression "local_40 = (local_40->link).next" identifier = (field_expression "(local_40->link).next" (parenthesized_expression "(local_40->link)" ( (field_expression "local_40->link" identifier -> field_identifier) )) . field_identifier)) ;)) }) while (parenthesized_expression "(local_40 != (bfd *)0x0)" ( (binary_expression "local_40 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) })) (expression_statement "lang_do_assignments(lang_mark_phase_enum);" (call_expression "lang_do_assignments(lang_mark_phase_enum)" identifier (argument_list "(lang_mark_phase_enum)" ( identifier ))) ;) (expression_statement "pmVar62 = lang_memory_region_list;" (assignment_expression "pmVar62 = lang_memory_region_list" identifier = identifier) ;) (labeled_statement "joined_r0x00028237:\n  if (pmVar62 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (pmVar62 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(pmVar62 != (lang_memory_region_type *)0x0)" ( (binary_expression "pmVar62 != (lang_memory_region_type *)0x0" identifier != (cast_expression "(lang_memory_region_type *)0x0" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }\n      if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }\n      pmVar62 = pmVar62->next;\n      if (pmVar62 == (memory_region_struct *)0x0) break;\n    }" { (if_statement "if (pmVar62->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }" if (parenthesized_expression "(pmVar62->origin_exp != (etree_type *)0x0)" ( (binary_expression "pmVar62->origin_exp != (etree_type *)0x0" (field_expression "pmVar62->origin_exp" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        exp_fold_tree_no_dot(pmVar62->origin_exp);\n        bVar57 = expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar62->origin_exp);" (call_expression "exp_fold_tree_no_dot(pmVar62->origin_exp)" identifier (argument_list "(pmVar62->origin_exp)" ( (field_expression "pmVar62->origin_exp" identifier -> field_identifier) ))) ;) (expression_statement "bVar57 = expld.result.value;" (assignment_expression "bVar57 = expld.result.value" identifier = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (if_statement "if (expld.result.valid_p == 0) {\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }\n        else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }" if (parenthesized_expression "(expld.result.valid_p == 0)" ( (binary_expression "expld.result.valid_p == 0" (field_expression "expld.result.valid_p" (field_expression "expld.result" identifier . field_identifier) . field_identifier) == number_literal) )) (compound_statement "{\n          pcVar24 = (pmVar62->name_list).name;\n          pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar28,pcVar24);\n        }" { (expression_statement "pcVar24 = (pmVar62->name_list).name;" (assignment_expression "pcVar24 = (pmVar62->name_list).name" identifier = (field_expression "(pmVar62->name_list).name" (parenthesized_expression "(pmVar62->name_list)" ( (field_expression "pmVar62->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid origin for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid origin for memory region %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }" else (compound_statement "{\n          pmVar62->origin = expld.result.value;\n          pmVar62->current = bVar57;\n        }" { (expression_statement "pmVar62->origin = expld.result.value;" (assignment_expression "pmVar62->origin = expld.result.value" (field_expression "pmVar62->origin" identifier -> field_identifier) = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) (expression_statement "pmVar62->current = bVar57;" (assignment_expression "pmVar62->current = bVar57" (field_expression "pmVar62->current" identifier -> field_identifier) = identifier) ;) }))) })) (if_statement "if (pmVar62->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }" if (parenthesized_expression "(pmVar62->length_exp != (etree_type *)0x0)" ( (binary_expression "pmVar62->length_exp != (etree_type *)0x0" (field_expression "pmVar62->length_exp" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        exp_fold_tree_no_dot(pmVar62->length_exp);\n        if (expld.result.valid_p == 0) goto LAB_000283a0;\n        pmVar62->length = expld.result.value;\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar62->length_exp);" (call_expression "exp_fold_tree_no_dot(pmVar62->length_exp)" identifier (argument_list "(pmVar62->length_exp)" ( (field_expression "pmVar62->length_exp" identifier -> field_identifier) ))) ;) (if_statement "if (expld.result.valid_p == 0) goto LAB_000283a0;" if (parenthesized_expression "(expld.result.valid_p == 0)" ( (binary_expression "expld.result.valid_p == 0" (field_expression "expld.result.valid_p" (field_expression "expld.result" identifier . field_identifier) . field_identifier) == number_literal) )) (goto_statement "goto LAB_000283a0;" goto statement_identifier ;)) (expression_statement "pmVar62->length = expld.result.value;" (assignment_expression "pmVar62->length = expld.result.value" (field_expression "pmVar62->length" identifier -> field_identifier) = (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier)) ;) })) (expression_statement "pmVar62 = pmVar62->next;" (assignment_expression "pmVar62 = pmVar62->next" identifier = (field_expression "pmVar62->next" identifier -> field_identifier)) ;) (if_statement "if (pmVar62 == (memory_region_struct *)0x0) break;" if (parenthesized_expression "(pmVar62 == (memory_region_struct *)0x0)" ( (binary_expression "pmVar62 == (memory_region_struct *)0x0" identifier == (cast_expression "(memory_region_struct *)0x0" ( (type_descriptor "memory_region_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "expld.phase = lang_first_phase_enum;" (assignment_expression "expld.phase = lang_first_phase_enum" (field_expression "expld.phase" identifier . field_identifier) = identifier) ;) (if_statement "if (((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {\n    if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }\n  }" if (parenthesized_expression "(((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0))))" ( (binary_expression "((link_info._7_1_ & 0x20) == 0) &&\n     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))" (parenthesized_expression "((link_info._7_1_ & 0x20) == 0)" ( (binary_expression "(link_info._7_1_ & 0x20) == 0" (parenthesized_expression "(link_info._7_1_ & 0x20)" ( (binary_expression "link_info._7_1_ & 0x20" (field_expression "link_info._7_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0))" ( (binary_expression "(link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)" (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(command_line.force_common_definition != 0)" ( (binary_expression "command_line.force_common_definition != 0" (field_expression "command_line.force_common_definition" identifier . field_identifier) != number_literal) ))) )) ))) )) (compound_statement "{\n    if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }\n  }" { (if_statement "if (config.sort_common == sort_none) {\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }\n    else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }" if (parenthesized_expression "(config.sort_common == sort_none)" ( (binary_expression "config.sort_common == sort_none" (field_expression "config.sort_common" identifier . field_identifier) == identifier) )) (compound_statement "{\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,0);\n    }" { (expression_statement "bfd_link_hash_traverse(link_info.hash,lang_one_common,0);" (call_expression "bfd_link_hash_traverse(link_info.hash,lang_one_common,0)" identifier (argument_list "(link_info.hash,lang_one_common,0)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }" else (compound_statement "{\n      if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }\n      bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n    }" { (if_statement "if (config.sort_common == sort_descending) {\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }\n      else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }" if (parenthesized_expression "(config.sort_common == sort_descending)" ( (binary_expression "config.sort_common == sort_descending" (field_expression "config.sort_common" identifier . field_identifier) == identifier) )) (compound_statement "{\n        power = 4;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);\n        power = 0;\n      }" { (expression_statement "power = 4;" (assignment_expression "power = 4" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        } while (power != 0);" do (compound_statement "{\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power - 1;\n        }" { (expression_statement "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);" (call_expression "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power)" identifier (argument_list "(link_info.hash,lang_one_common,&power)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , (pointer_expression "&power" & identifier) ))) ;) (expression_statement "power = power - 1;" (assignment_expression "power = power - 1" identifier = (binary_expression "power - 1" identifier - number_literal)) ;) }) while (parenthesized_expression "(power != 0)" ( (binary_expression "power != 0" identifier != number_literal) )) ;) (expression_statement "power = 0;" (assignment_expression "power = 0" identifier = number_literal) ;) }) (else_clause "else {\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }" else (compound_statement "{\n        power = 0;\n        do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);\n        power = 0xffffffff;\n      }" { (expression_statement "power = 0;" (assignment_expression "power = 0" identifier = number_literal) ;) (do_statement "do {\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        } while (power < 5);" do (compound_statement "{\n          bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);\n          power = power + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);" (call_expression "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power)" identifier (argument_list "(link_info.hash,lang_one_common,&power)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , (pointer_expression "&power" & identifier) ))) ;) (expression_statement "power = power + 1;" (assignment_expression "power = power + 1" identifier = (binary_expression "power + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(power < 5)" ( (binary_expression "power < 5" identifier < number_literal) )) ;) (expression_statement "power = 0xffffffff;" (assignment_expression "power = 0xffffffff" identifier = number_literal) ;) }))) (expression_statement "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power);" (call_expression "bfd_link_hash_traverse(link_info.hash,lang_one_common,&power)" identifier (argument_list "(link_info.hash,lang_one_common,&power)" ( (field_expression "link_info.hash" identifier . field_identifier) , identifier , (pointer_expression "&power" & identifier) ))) ;) }))) })) (expression_statement "lang_gc_sections_1(statement_list.head);" (call_expression "lang_gc_sections_1(statement_list.head)" identifier (argument_list "(statement_list.head)" ( (field_expression "statement_list.head" identifier . field_identifier) ))) ;) (expression_statement "uVar21 = link_info._0_1_;" (assignment_expression "uVar21 = link_info._0_1_" identifier = (field_expression "link_info._0_1_" identifier . field_identifier)) ;) (expression_statement "plVar47 = file_chain.head;" (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; plVar47 != (lang_statement_union *)0x0; plVar47 = (plVar47->wild_statement).children.head\n        ) {\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "(((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0)" ( (binary_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000) == 0" (parenthesized_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar47->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (pbVar34 = ((plVar47->input_statement).the_bfd)->sections; pbVar34 != (bfd_section *)0x0\n            ; pbVar34 = pbVar34->next) {\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "pbVar34 = ((plVar47->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar47->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar47->input_statement).the_bfd)" ( (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar34 = pbVar34->next" identifier = (field_expression "pbVar34->next" identifier -> field_identifier)) ) (compound_statement "{\n          if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }\n        }" { (if_statement "if ((pbVar34->flags & 0x2000) == 0) {\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }" if (parenthesized_expression "((pbVar34->flags & 0x2000) == 0)" ( (binary_expression "(pbVar34->flags & 0x2000) == 0" (parenthesized_expression "(pbVar34->flags & 0x2000)" ( (binary_expression "pbVar34->flags & 0x2000" (field_expression "pbVar34->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar34->flags = pbVar34->flags & 0xffff7fff;\n          }" { (expression_statement "pbVar34->flags = pbVar34->flags & 0xffff7fff;" (assignment_expression "pbVar34->flags = pbVar34->flags & 0xffff7fff" (field_expression "pbVar34->flags" identifier -> field_identifier) = (binary_expression "pbVar34->flags & 0xffff7fff" (field_expression "pbVar34->flags" identifier -> field_identifier) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((uVar21 & 0x40) != 0) {\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }" if (parenthesized_expression "((uVar21 & 0x40) != 0)" ( (binary_expression "(uVar21 & 0x40) != 0" (parenthesized_expression "(uVar21 & 0x40)" ( (binary_expression "uVar21 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }" { (expression_statement "(*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);" (call_expression "(*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_gc_sections)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_gc_sections" * (field_expression "(link_info.output_bfd)->xvec->_bfd_gc_sections" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(link_info.output_bfd,&link_info)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) ))) ;) })) (expression_statement "pbVar6 = link_info.input_bfds;" (assignment_expression "pbVar6 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (if_statement "if ((link_info._6_1_ & 0x20) != 0) {\n    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }" if (parenthesized_expression "((link_info._6_1_ & 0x20) != 0)" ( (binary_expression "(link_info._6_1_ & 0x20) != 0" (parenthesized_expression "(link_info._6_1_ & 0x20)" ( (binary_expression "link_info._6_1_ & 0x20" (field_expression "link_info._6_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }" { (for_statement "for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }" for ( ; (binary_expression "pbVar6 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar6 = (pbVar6->link).next" identifier = (field_expression "(pbVar6->link).next" (parenthesized_expression "(pbVar6->link)" ( (field_expression "pbVar6->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n      iVar23 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar23 == 0) {\n        config.make_executable = 0;\n      }\n    }" { (expression_statement "iVar23 = bfd_link_check_relocs(pbVar6,&link_info);" (assignment_expression "iVar23 = bfd_link_check_relocs(pbVar6,&link_info)" identifier = (call_expression "bfd_link_check_relocs(pbVar6,&link_info)" identifier (argument_list "(pbVar6,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) )))) ;) (if_statement "if (iVar23 == 0) {\n        config.make_executable = 0;\n      }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        config.make_executable = 0;\n      }" { (expression_statement "config.make_executable = 0;" (assignment_expression "config.make_executable = 0" (field_expression "config.make_executable" identifier . field_identifier) = number_literal) ;) })) })) })) (expression_statement "ldemul_after_check_relocs();" (call_expression "ldemul_after_check_relocs()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar55 = (lang_statement_union *)0x0;" (assignment_expression "plVar55 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "update_wild_statements(statement_list.head);" (call_expression "update_wild_statements(statement_list.head)" identifier (argument_list "(statement_list.head)" ( (field_expression "statement_list.head" identifier . field_identifier) ))) ;) (expression_statement "lang_statement_iteration = lang_statement_iteration + 1;" (assignment_expression "lang_statement_iteration = lang_statement_iteration + 1" identifier = (binary_expression "lang_statement_iteration + 1" identifier + number_literal)) ;) (expression_statement "map_input_to_output_sections\n            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0);" (call_expression "map_input_to_output_sections\n            (statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0)" identifier (argument_list "(statement_list.head,(char *)0x0,(lang_output_section_statement_type *)0x0)" ( (field_expression "statement_list.head" identifier . field_identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "plVar51 = (lang_statement_union *)0x0;" (assignment_expression "plVar51 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar47 = ((lang_output_section_statement.head)->header).next;" (assignment_expression "plVar47 = ((lang_output_section_statement.head)->header).next" identifier = (field_expression "((lang_output_section_statement.head)->header).next" (parenthesized_expression "((lang_output_section_statement.head)->header)" ( (field_expression "(lang_output_section_statement.head)->header" (parenthesized_expression "(lang_output_section_statement.head)" ( (field_expression "lang_output_section_statement.head" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (if_statement "if (plVar47 == (lang_statement_union *)0x0) {\nLAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }" if (parenthesized_expression "(plVar47 == (lang_statement_union *)0x0)" ( (binary_expression "plVar47 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }\n  }" { (labeled_statement "LAB_00028564:\n    if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }" statement_identifier : (if_statement "if (plVar55 != (lang_statement_union *)0x0) {\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }" if (parenthesized_expression "(plVar55 != (lang_statement_union *)0x0)" ( (binary_expression "plVar55 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;\n      while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }\n    }" { (expression_statement "(plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint;" (assignment_expression "(plVar55->output_section_statement).constraint =\n           -2 - (plVar55->output_section_statement).constraint" (field_expression "(plVar55->output_section_statement).constraint" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar55->output_section_statement).constraint" number_literal - (field_expression "(plVar55->output_section_statement).constraint" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (while_statement "while ((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))) {\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }" while (parenthesized_expression "((plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0)))" ( (parenthesized_expression "(plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0))" ( (binary_expression "plVar51 != plVar55 &&\n             (plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0)" (binary_expression "plVar51 != plVar55" identifier != identifier) && (parenthesized_expression "(plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0)" ( (comma_expression "plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next,\n             plVar55 != (lang_statement_union *)0x0" (assignment_expression "plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next" identifier = (cast_expression "(lang_statement_union *)(plVar55->output_section_statement).next" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar55->output_section_statement).next" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier))) , (binary_expression "plVar55 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n        (plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;\n      }" { (expression_statement "(plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint;" (assignment_expression "(plVar55->output_section_statement).constraint =\n             -2 - (plVar55->output_section_statement).constraint" (field_expression "(plVar55->output_section_statement).constraint" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar55->output_section_statement).constraint" number_literal - (field_expression "(plVar55->output_section_statement).constraint" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) })) }))) }) (else_clause "else {\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }" else (compound_statement "{\n    plVar58 = (lang_statement_union *)0x0;\n    plVar63 = lang_output_section_statement.head;\n    while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }\n    if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }\n    after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);\n    if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;\n    pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar28,pcVar24);\n  }" { (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar63 = lang_output_section_statement.head;" (assignment_expression "plVar63 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (while_statement "while (plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum) {\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }" while (parenthesized_expression "(plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum)" ( (comma_expression "plVar32 = plVar47, (plVar47->header).type == lang_output_section_statement_enum" (assignment_expression "plVar32 = plVar47" identifier = identifier) , (binary_expression "(plVar47->header).type == lang_output_section_statement_enum" (field_expression "(plVar47->header).type" (parenthesized_expression "(plVar47->header)" ( (field_expression "plVar47->header" identifier -> field_identifier) )) . field_identifier) == identifier)) )) (compound_statement "{\n      if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }\n      (plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;\n      plVar51 = plVar47;\n      plVar55 = plVar47;\n      if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      plVar47 = (plVar32->header).next;\n      plVar58 = plVar55;\n      plVar63 = plVar32;\n      if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;\n    }" { (if_statement "if ((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }" if (parenthesized_expression "((plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list))" ( (binary_expression "(plVar51 != (lang_statement_union *)0x0) &&\n         (plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)" (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list)" ( (binary_expression "plVar47 != (lang_statement_union *)(plVar51->wild_statement).section_list" identifier != (cast_expression "(lang_statement_union *)(plVar51->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier))) ))) )) (compound_statement "{\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar32 = (plVar63->header).next;\n      }" { (expression_statement "info_assert("../../ld/ldlang.c",0xea0);" (call_expression "info_assert("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "plVar32 = (plVar63->header).next;" (assignment_expression "plVar32 = (plVar63->header).next" identifier = (field_expression "(plVar63->header).next" (parenthesized_expression "(plVar63->header)" ( (field_expression "plVar63->header" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "(plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint;" (assignment_expression "(plVar47->output_section_statement).constraint =\n           -2 - (plVar47->output_section_statement).constraint" (field_expression "(plVar47->output_section_statement).constraint" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar47->output_section_statement).constraint" number_literal - (field_expression "(plVar47->output_section_statement).constraint" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "plVar51 = plVar47;" (assignment_expression "plVar51 = plVar47" identifier = identifier) ;) (expression_statement "plVar55 = plVar47;" (assignment_expression "plVar55 = plVar47" identifier = identifier) ;) (if_statement "if (plVar58 != (lang_statement_union *)0x0) goto LAB_0002855a;" if (parenthesized_expression "(plVar58 != (lang_statement_union *)0x0)" ( (binary_expression "plVar58 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002855a;" goto statement_identifier ;)) (labeled_statement "LAB_0002855c:\n      plVar47 = (plVar32->header).next;" statement_identifier : (expression_statement "plVar47 = (plVar32->header).next;" (assignment_expression "plVar47 = (plVar32->header).next" identifier = (field_expression "(plVar32->header).next" (parenthesized_expression "(plVar32->header)" ( (field_expression "plVar32->header" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "plVar58 = plVar55;" (assignment_expression "plVar58 = plVar55" identifier = identifier) ;) (expression_statement "plVar63 = plVar32;" (assignment_expression "plVar63 = plVar32" identifier = identifier) ;) (if_statement "if (plVar47 == (lang_statement_union *)0x0) goto LAB_00028564;" if (parenthesized_expression "(plVar47 == (lang_statement_union *)0x0)" ( (binary_expression "plVar47 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00028564;" goto statement_identifier ;)) })) (if_statement "if ((plVar47->header).type != lang_insert_statement_enum) {\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "((plVar47->header).type != lang_insert_statement_enum)" ( (binary_expression "(plVar47->header).type != lang_insert_statement_enum" (field_expression "(plVar47->header).type" (parenthesized_expression "(plVar47->header)" ( (field_expression "plVar47->header" identifier -> field_identifier) )) . field_identifier) != identifier) )) (compound_statement "{\nLAB_0002855a:\n      plVar55 = plVar58;\n      goto LAB_0002855c;\n    }" { (labeled_statement "LAB_0002855a:\n      plVar55 = plVar58;" statement_identifier : (expression_statement "plVar55 = plVar58;" (assignment_expression "plVar55 = plVar58" identifier = identifier) ;)) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (expression_statement "after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0);" (assignment_expression "after = lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0)" identifier = (call_expression "lang_output_section_statement_lookup((plVar47->wild_statement).filename,0,0)" identifier (argument_list "((plVar47->wild_statement).filename,0,0)" ( (field_expression "(plVar47->wild_statement).filename" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (after != (lang_output_section_statement_type *)0x0) {\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "(after != (lang_output_section_statement_type *)0x0)" ( (binary_expression "after != (lang_output_section_statement_type *)0x0" identifier != (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }\n      if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }\n      pplVar33 = insert_os_after(after);\n      plVar47 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;\n      plVar55 = *pplVar33;\n      (plVar63->header).next = plVar55;\n      if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }\n      *pplVar33 = plVar47;\n      plVar51 = (lang_statement_union *)0x0;\n      plVar55 = plVar58;\n      plVar32 = lang_output_section_statement.head;\n      goto LAB_0002855c;\n    }" { (if_statement "if ((plVar47->wild_statement).filenames_sorted != 0) {\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }" if (parenthesized_expression "((plVar47->wild_statement).filenames_sorted != 0)" ( (binary_expression "(plVar47->wild_statement).filenames_sorted != 0" (field_expression "(plVar47->wild_statement).filenames_sorted" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);\n      }" { (do_statement "do {\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        } while (after->constraint < 0);" do (compound_statement "{\n          after = after->prev;\n          if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;\n        }" { (expression_statement "after = after->prev;" (assignment_expression "after = after->prev" identifier = (field_expression "after->prev" identifier -> field_identifier)) ;) (if_statement "if (after == (lang_output_section_statement_struct *)0x0) goto LAB_00028636;" if (parenthesized_expression "(after == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "after == (lang_output_section_statement_struct *)0x0" identifier == (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00028636;" goto statement_identifier ;)) }) while (parenthesized_expression "(after->constraint < 0)" ( (binary_expression "after->constraint < 0" (field_expression "after->constraint" identifier -> field_identifier) < number_literal) )) ;) })) (if_statement "if (plVar51 != (lang_statement_union *)0x0) {\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(plVar51 != (lang_statement_union *)0x0)" ( (binary_expression "plVar51 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        plVar48 = (plVar58->output_section_statement).prev;\n        plVar12 = (plVar51->output_section_statement).next;\n        plVar48->next = plVar12;\n        if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }\n        (plVar58->output_section_statement).prev = after;\n        paVar49 = (asection *)0x0;\n        paVar44 = (asection *)0x0;\n        after->next = (lang_output_section_statement_struct *)plVar58;\n        do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));\n        plVar58 = (lang_statement_union *)0x0;\n        if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }\n      }" { (expression_statement "plVar48 = (plVar58->output_section_statement).prev;" (assignment_expression "plVar48 = (plVar58->output_section_statement).prev" identifier = (field_expression "(plVar58->output_section_statement).prev" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar12 = (plVar51->output_section_statement).next;" (assignment_expression "plVar12 = (plVar51->output_section_statement).next" identifier = (field_expression "(plVar51->output_section_statement).next" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar48->next = plVar12;" (assignment_expression "plVar48->next = plVar12" (field_expression "plVar48->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (plVar12 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }\n        else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }" if (parenthesized_expression "(plVar12 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar12 == (lang_output_section_statement_struct *)0x0" identifier == (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;\nLAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;\n        }" { (expression_statement "lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next;" (assignment_expression "lang_output_section_statement.tail = (lang_statement_union **)&plVar48->next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&plVar48->next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&plVar48->next" & (field_expression "plVar48->next" identifier -> field_identifier)))) ;) (expression_statement "(plVar51->wild_statement).section_list = (wildcard_list *)after->next;" (assignment_expression "(plVar51->wild_statement).section_list = (wildcard_list *)after->next" (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)after->next" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "after->next" identifier -> field_identifier))) ;) (expression_statement "plVar48 = after->next;" (assignment_expression "plVar48 = after->next" identifier = (field_expression "after->next" identifier -> field_identifier)) ;) (if_statement "if (plVar48 != (lang_output_section_statement_struct *)0x0) goto LAB_00028f0d;" if (parenthesized_expression "(plVar48 != (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar48 != (lang_output_section_statement_struct *)0x0" identifier != (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00028f0d;" goto statement_identifier ;)) (labeled_statement "LAB_00029143:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;" statement_identifier : (expression_statement "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next;" (assignment_expression "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar51->output_section_statement).next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&(plVar51->output_section_statement).next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(plVar51->output_section_statement).next" & (field_expression "(plVar51->output_section_statement).next" (parenthesized_expression "(plVar51->output_section_statement)" ( (field_expression "plVar51->output_section_statement" identifier -> field_identifier) )) . field_identifier)))) ;)) }) (else_clause "else {\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }" else (compound_statement "{\n          plVar12->prev = plVar48;\n          (plVar51->wild_statement).section_list = (wildcard_list *)after->next;\n          plVar48 = after->next;\n          if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;\nLAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;\n        }" { (expression_statement "plVar12->prev = plVar48;" (assignment_expression "plVar12->prev = plVar48" (field_expression "plVar12->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "(plVar51->wild_statement).section_list = (wildcard_list *)after->next;" (assignment_expression "(plVar51->wild_statement).section_list = (wildcard_list *)after->next" (field_expression "(plVar51->wild_statement).section_list" (parenthesized_expression "(plVar51->wild_statement)" ( (field_expression "plVar51->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)after->next" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "after->next" identifier -> field_identifier))) ;) (expression_statement "plVar48 = after->next;" (assignment_expression "plVar48 = after->next" identifier = (field_expression "after->next" identifier -> field_identifier)) ;) (if_statement "if (plVar48 == (lang_output_section_statement_struct *)0x0) goto LAB_00029143;" if (parenthesized_expression "(plVar48 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar48 == (lang_output_section_statement_struct *)0x0" identifier == (cast_expression "(lang_output_section_statement_struct *)0x0" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00029143;" goto statement_identifier ;)) (labeled_statement "LAB_00028f0d:\n          plVar48->prev = (lang_output_section_statement_struct *)plVar51;" statement_identifier : (expression_statement "plVar48->prev = (lang_output_section_statement_struct *)plVar51;" (assignment_expression "plVar48->prev = (lang_output_section_statement_struct *)plVar51" (field_expression "plVar48->prev" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar51" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }))) (expression_statement "(plVar58->output_section_statement).prev = after;" (assignment_expression "(plVar58->output_section_statement).prev = after" (field_expression "(plVar58->output_section_statement).prev" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "paVar49 = (asection *)0x0;" (assignment_expression "paVar49 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar44 = (asection *)0x0;" (assignment_expression "paVar44 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "after->next = (lang_output_section_statement_struct *)plVar58;" (assignment_expression "after->next = (lang_output_section_statement_struct *)plVar58" (field_expression "after->next" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar58" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        } while ((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0));" do (compound_statement "{\n          (plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;\n          paVar54 = (plVar58->output_section_statement).bfd_section;\n          if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }\n        }" { (expression_statement "(plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint;" (assignment_expression "(plVar58->output_section_statement).constraint =\n               -2 - (plVar58->output_section_statement).constraint" (field_expression "(plVar58->output_section_statement).constraint" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar58->output_section_statement).constraint" number_literal - (field_expression "(plVar58->output_section_statement).constraint" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar54 = (plVar58->output_section_statement).bfd_section;" (assignment_expression "paVar54 = (plVar58->output_section_statement).bfd_section" identifier = (field_expression "(plVar58->output_section_statement).bfd_section" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)) {\n            paVar44 = paVar54;\n          }" if (parenthesized_expression "(((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0))" ( (binary_expression "((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)) &&\n             (paVar49 = paVar54, paVar44 == (asection *)0x0)" (parenthesized_expression "((paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0))" ( (binary_expression "(paVar54 != (asection *)0x0) && (paVar54->owner != (bfd *)0x0)" (parenthesized_expression "(paVar54 != (asection *)0x0)" ( (binary_expression "paVar54 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(paVar54->owner != (bfd *)0x0)" ( (binary_expression "paVar54->owner != (bfd *)0x0" (field_expression "paVar54->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(paVar49 = paVar54, paVar44 == (asection *)0x0)" ( (comma_expression "paVar49 = paVar54, paVar44 == (asection *)0x0" (assignment_expression "paVar49 = paVar54" identifier = identifier) , (binary_expression "paVar44 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            paVar44 = paVar54;\n          }" { (expression_statement "paVar44 = paVar54;" (assignment_expression "paVar44 = paVar54" identifier = identifier) ;) })) }) while (parenthesized_expression "((plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0))" ( (binary_expression "(plVar51 != plVar58) &&\n                (plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0)" (parenthesized_expression "(plVar51 != plVar58)" ( (binary_expression "plVar51 != plVar58" identifier != identifier) )) && (parenthesized_expression "(plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0)" ( (comma_expression "plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list,\n                plVar58 != (lang_statement_union *)0x0" (assignment_expression "plVar58 = (lang_statement_union *)(plVar58->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar58->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar58->wild_statement).section_list" (parenthesized_expression "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) )) . field_identifier))) , (binary_expression "plVar58 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ;) (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (paVar49 != (asection *)0x0) {\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }" if (parenthesized_expression "(paVar49 != (asection *)0x0)" ( (binary_expression "paVar49 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          paVar54 = after->bfd_section;\n          if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }\n        }" { (expression_statement "paVar54 = after->bfd_section;" (assignment_expression "paVar54 = after->bfd_section" identifier = (field_expression "after->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (paVar54 == (asection *)0x0) {\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }" if (parenthesized_expression "(paVar54 == (asection *)0x0)" ( (binary_expression "paVar54 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            plVar58 = (lang_statement_union *)after->prev;\n            if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }\n          }" { (expression_statement "plVar58 = (lang_statement_union *)after->prev;" (assignment_expression "plVar58 = (lang_statement_union *)after->prev" identifier = (cast_expression "(lang_statement_union *)after->prev" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "after->prev" identifier -> field_identifier))) ;) (if_statement "if (plVar58 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }" if (parenthesized_expression "(plVar58 != (lang_statement_union *)0x0)" ( (binary_expression "plVar58 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);\n              plVar58 = (lang_statement_union *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              } while (plVar58 != (lang_statement_union *)0x0);" do (compound_statement "{\n                if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;\n                plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;\n              }" { (if_statement "if (((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))\n                goto LAB_00028f6a;" if (parenthesized_expression "(((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0))" ( (binary_expression "((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)) && (paVar54->owner != (bfd *)0x0)" (parenthesized_expression "((-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0))" ( (binary_expression "(-1 < (plVar58->output_section_statement).constraint) &&\n                    (paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)" (parenthesized_expression "(-1 < (plVar58->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar58->output_section_statement).constraint" number_literal < (field_expression "(plVar58->output_section_statement).constraint" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "(paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0)" ( (comma_expression "paVar54 = (plVar58->output_section_statement).bfd_section,\n                    paVar54 != (asection *)0x0" (assignment_expression "paVar54 = (plVar58->output_section_statement).bfd_section" identifier = (field_expression "(plVar58->output_section_statement).bfd_section" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "paVar54 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(paVar54->owner != (bfd *)0x0)" ( (binary_expression "paVar54->owner != (bfd *)0x0" (field_expression "paVar54->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_00028f6a;" goto statement_identifier ;)) (expression_statement "plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections;" (assignment_expression "plVar58 = (lang_statement_union *)(plVar58->wild_statement).keep_sections" identifier = (cast_expression "(lang_statement_union *)(plVar58->wild_statement).keep_sections" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar58->wild_statement).keep_sections" (parenthesized_expression "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "(plVar58 != (lang_statement_union *)0x0)" ( (binary_expression "plVar58 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }" else (compound_statement "{\nLAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;\n            if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }\n          }" { (labeled_statement "LAB_00028f6a:\n            plVar58 = (lang_statement_union *)0x0;" statement_identifier : (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (paVar54 != paVar49) {\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }" if (parenthesized_expression "(paVar54 != paVar49)" ( (binary_expression "paVar54 != paVar49" identifier != identifier) )) (compound_statement "{\n              pbVar34 = paVar44->prev;\n              pbVar52 = paVar49->next;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }\n              if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }\n              pbVar34 = paVar54->next;\n              paVar49->next = pbVar34;\n              if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }\n              paVar44->prev = paVar54;\n              plVar58 = (lang_statement_union *)0x0;\n              paVar54->next = paVar44;\n            }" { (expression_statement "pbVar34 = paVar44->prev;" (assignment_expression "pbVar34 = paVar44->prev" identifier = (field_expression "paVar44->prev" identifier -> field_identifier)) ;) (expression_statement "pbVar52 = paVar49->next;" (assignment_expression "pbVar52 = paVar49->next" identifier = (field_expression "paVar49->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar52;\n              }\n              else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }" if (parenthesized_expression "(pbVar34 == (bfd_section *)0x0)" ( (binary_expression "pbVar34 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (link_info.output_bfd)->sections = pbVar52;\n              }" { (expression_statement "(link_info.output_bfd)->sections = pbVar52;" (assignment_expression "(link_info.output_bfd)->sections = pbVar52" (field_expression "(link_info.output_bfd)->sections" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else {\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }" else (compound_statement "{\n                pbVar34->next = pbVar52;\n                pbVar52 = paVar49->next;\n              }" { (expression_statement "pbVar34->next = pbVar52;" (assignment_expression "pbVar34->next = pbVar52" (field_expression "pbVar34->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar52 = paVar49->next;" (assignment_expression "pbVar52 = paVar49->next" identifier = (field_expression "paVar49->next" identifier -> field_identifier)) ;) }))) (if_statement "if (pbVar52 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar34;\n              }\n              else {\n                pbVar52->prev = pbVar34;\n              }" if (parenthesized_expression "(pbVar52 == (bfd_section *)0x0)" ( (binary_expression "pbVar52 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (link_info.output_bfd)->section_last = pbVar34;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = pbVar34;" (assignment_expression "(link_info.output_bfd)->section_last = pbVar34" (field_expression "(link_info.output_bfd)->section_last" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else {\n                pbVar52->prev = pbVar34;\n              }" else (compound_statement "{\n                pbVar52->prev = pbVar34;\n              }" { (expression_statement "pbVar52->prev = pbVar34;" (assignment_expression "pbVar52->prev = pbVar34" (field_expression "pbVar52->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pbVar34 = paVar54->next;" (assignment_expression "pbVar34 = paVar54->next" identifier = (field_expression "paVar54->next" identifier -> field_identifier)) ;) (expression_statement "paVar49->next = pbVar34;" (assignment_expression "paVar49->next = pbVar34" (field_expression "paVar49->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pbVar34 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar49;\n              }\n              else {\n                pbVar34->prev = paVar49;\n              }" if (parenthesized_expression "(pbVar34 == (bfd_section *)0x0)" ( (binary_expression "pbVar34 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (link_info.output_bfd)->section_last = paVar49;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = paVar49;" (assignment_expression "(link_info.output_bfd)->section_last = paVar49" (field_expression "(link_info.output_bfd)->section_last" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) = identifier) ;) }) (else_clause "else {\n                pbVar34->prev = paVar49;\n              }" else (compound_statement "{\n                pbVar34->prev = paVar49;\n              }" { (expression_statement "pbVar34->prev = paVar49;" (assignment_expression "pbVar34->prev = paVar49" (field_expression "pbVar34->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "paVar44->prev = paVar54;" (assignment_expression "paVar44->prev = paVar54" (field_expression "paVar44->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar58 = (lang_statement_union *)0x0;" (assignment_expression "plVar58 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar54->next = paVar44;" (assignment_expression "paVar54->next = paVar44" (field_expression "paVar54->next" identifier -> field_identifier) = identifier) ;) })) }))) })) })) (expression_statement "pplVar33 = insert_os_after(after);" (assignment_expression "pplVar33 = insert_os_after(after)" identifier = (call_expression "insert_os_after(after)" identifier (argument_list "(after)" ( identifier )))) ;) (expression_statement "plVar47 = ((lang_output_section_statement.head)->header).next;" (assignment_expression "plVar47 = ((lang_output_section_statement.head)->header).next" identifier = (field_expression "((lang_output_section_statement.head)->header).next" (parenthesized_expression "((lang_output_section_statement.head)->header)" ( (field_expression "(lang_output_section_statement.head)->header" (parenthesized_expression "(lang_output_section_statement.head)" ( (field_expression "lang_output_section_statement.head" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;" (assignment_expression "((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next" (field_expression "((lang_output_section_statement.head)->header).next" (parenthesized_expression "((lang_output_section_statement.head)->header)" ( (field_expression "(lang_output_section_statement.head)->header" (parenthesized_expression "(lang_output_section_statement.head)" ( (field_expression "lang_output_section_statement.head" identifier . field_identifier) )) -> field_identifier) )) . field_identifier) = (field_expression "(((plVar63->header).next)->header).next" (parenthesized_expression "(((plVar63->header).next)->header)" ( (field_expression "((plVar63->header).next)->header" (parenthesized_expression "((plVar63->header).next)" ( (field_expression "(plVar63->header).next" (parenthesized_expression "(plVar63->header)" ( (field_expression "plVar63->header" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar55 = *pplVar33;" (assignment_expression "plVar55 = *pplVar33" identifier = (pointer_expression "*pplVar33" * identifier)) ;) (expression_statement "(plVar63->header).next = plVar55;" (assignment_expression "(plVar63->header).next = plVar55" (field_expression "(plVar63->header).next" (parenthesized_expression "(plVar63->header)" ( (field_expression "plVar63->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (plVar55 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }" if (parenthesized_expression "(plVar55 == (lang_statement_union *)0x0)" ( (binary_expression "plVar55 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        statement_list.tail = (lang_statement_union **)plVar63;\n      }" { (expression_statement "statement_list.tail = (lang_statement_union **)plVar63;" (assignment_expression "statement_list.tail = (lang_statement_union **)plVar63" (field_expression "statement_list.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)plVar63" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "*pplVar33 = plVar47;" (assignment_expression "*pplVar33 = plVar47" (pointer_expression "*pplVar33" * identifier) = identifier) ;) (expression_statement "plVar51 = (lang_statement_union *)0x0;" (assignment_expression "plVar51 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar55 = plVar58;" (assignment_expression "plVar55 = plVar58" identifier = identifier) ;) (expression_statement "plVar32 = lang_output_section_statement.head;" (assignment_expression "plVar32 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (labeled_statement "LAB_00028636:\n    pcVar24 = (plVar47->wild_statement).filename;" statement_identifier : (expression_statement "pcVar24 = (plVar47->wild_statement).filename;" (assignment_expression "pcVar24 = (plVar47->wild_statement).filename" identifier = (field_expression "(plVar47->wild_statement).filename" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: %s not found for insert\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier (argument_list "(0,"%F%P: %s not found for insert\n",5)" ( number_literal , (string_literal ""%F%P: %s not found for insert\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) }))) (expression_statement "pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150);" (assignment_expression "pbVar34 = (bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150)" identifier = (cast_expression "(bfd_section *)(PTR__bfd_std_section_00090fc4 + 0x150)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00090fc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal) )))) ;) (for_statement "for (plVar47 = file_chain.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (plVar47->wild_statement).children.head) {\n    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;\njoined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "plVar47 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ; (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n    pbVar52 = ((plVar47->input_statement).the_bfd)->sections;\njoined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "pbVar52 = ((plVar47->input_statement).the_bfd)->sections;" (assignment_expression "pbVar52 = ((plVar47->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar47->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar47->input_statement).the_bfd)" ( (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "joined_r0x00028684:\n    if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar52 != (bfd_section *)0x0) {\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar52 != (bfd_section *)0x0)" ( (binary_expression "pbVar52 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }\n        pbVar52 = pbVar52->next;\n        if (pbVar52 == (bfd_section *)0x0) break;\n      }" { (if_statement "if (pbVar52->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }" if (parenthesized_expression "(pbVar52->output_section == (bfd_section *)0x0)" ( (binary_expression "pbVar52->output_section == (bfd_section *)0x0" (field_expression "pbVar52->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;\n          bVar26 = lang_discard_section_p((asection *)pbVar52->flags);\n          bVar66 = false;\n          bVar67 = bVar26 == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }\n        }" { (if_statement "if (((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000286ac;" if (parenthesized_expression "(((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0)" ( (binary_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10) != 0" (parenthesized_expression "((uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10)" ( (binary_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler & 0x10" (field_expression "(uint)(plVar47->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar47->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000286ac;" goto statement_identifier ;)) (expression_statement "bVar26 = lang_discard_section_p((asection *)pbVar52->flags);" (assignment_expression "bVar26 = lang_discard_section_p((asection *)pbVar52->flags)" identifier = (call_expression "lang_discard_section_p((asection *)pbVar52->flags)" identifier (argument_list "((asection *)pbVar52->flags)" ( (cast_expression "(asection *)pbVar52->flags" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar52->flags" identifier -> field_identifier)) )))) ;) (expression_statement "bVar66 = false;" (assignment_expression "bVar66 = false" identifier = false) ;) (expression_statement "bVar67 = bVar26 == 0;" (assignment_expression "bVar67 = bVar26 == 0" identifier = (binary_expression "bVar26 == 0" identifier == number_literal)) ;) (if_statement "if (bVar67) {\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }\n          else {\n            pbVar52->output_section = pbVar34;\n          }" if (parenthesized_expression "(bVar67)" ( identifier )) (compound_statement "{\n            pbVar9 = (byte *)pbVar52->name;\n            iVar23 = 7;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)"COMMON";\n            do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }\n          }" { (expression_statement "pbVar9 = (byte *)pbVar52->name;" (assignment_expression "pbVar9 = (byte *)pbVar52->name" identifier = (cast_expression "(byte *)pbVar52->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar52->name" identifier -> field_identifier))) ;) (expression_statement "iVar23 = 7;" (assignment_expression "iVar23 = 7" identifier = number_literal) ;) (expression_statement "pbVar40 = pbVar9;" (assignment_expression "pbVar40 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar64 = (byte *)"COMMON";" (assignment_expression "pbVar64 = (byte *)"COMMON"" identifier = (cast_expression "(byte *)"COMMON"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""COMMON"" " string_content "))) ;) (do_statement "do {\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);" do (compound_statement "{\n              if (iVar23 == 0) break;\n              iVar23 = iVar23 + -1;\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            }" { (if_statement "if (iVar23 == 0) break;" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar23 = iVar23 + -1;" (assignment_expression "iVar23 = iVar23 + -1" identifier = (binary_expression "iVar23 + -1" identifier + number_literal)) ;) (expression_statement "bVar66 = *pbVar40 < *pbVar64;" (assignment_expression "bVar66 = *pbVar40 < *pbVar64" identifier = (binary_expression "*pbVar40 < *pbVar64" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar64" * identifier))) ;) (expression_statement "bVar67 = *pbVar40 == *pbVar64;" (assignment_expression "bVar67 = *pbVar40 == *pbVar64" identifier = (binary_expression "*pbVar40 == *pbVar64" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar64" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1" identifier = (binary_expression "pbVar40 + (uint)bVar68 * -2 + 1" (binary_expression "pbVar40 + (uint)bVar68 * -2" identifier + (binary_expression "(uint)bVar68 * -2" (cast_expression "(uint)bVar68" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;" (assignment_expression "pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1" identifier = (binary_expression "pbVar64 + (uint)bVar68 * -2 + 1" (binary_expression "pbVar64 + (uint)bVar68 * -2" identifier + (binary_expression "(uint)bVar68 * -2" (cast_expression "(uint)bVar68" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar67)" ( identifier )) ;) (if_statement "if ((!bVar66 && !bVar67) == bVar66) {\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }" if (parenthesized_expression "((!bVar66 && !bVar67) == bVar66)" ( (binary_expression "(!bVar66 && !bVar67) == bVar66" (parenthesized_expression "(!bVar66 && !bVar67)" ( (binary_expression "!bVar66 && !bVar67" (unary_expression "!bVar66" ! identifier) && (unary_expression "!bVar67" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }" { (if_statement "if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }" if (parenthesized_expression "(((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0))" ( (binary_expression "((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)" (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(command_line.force_common_definition != 0)" ( (binary_expression "command_line.force_common_definition != 0" (field_expression "command_line.force_common_definition" identifier . field_identifier) != number_literal) ))) )) (compound_statement "{\n                if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }\n                lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);\n              }" { (if_statement "if (default_common_section == (lang_output_section_statement_type *)0x0) {\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }" if (parenthesized_expression "(default_common_section == (lang_output_section_statement_type *)0x0)" ( (binary_expression "default_common_section == (lang_output_section_statement_type *)0x0" identifier == (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  default_common_section = lang_output_section_statement_lookup(".bss",0,1);\n                }" { (expression_statement "default_common_section = lang_output_section_statement_lookup(".bss",0,1);" (assignment_expression "default_common_section = lang_output_section_statement_lookup(".bss",0,1)" identifier = (call_expression "lang_output_section_statement_lookup(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) })) (expression_statement "lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section);" (call_expression "lang_add_section(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section)" identifier (argument_list "(&default_common_section->children,pbVar52,(flag_info *)0x0,\n                                 default_common_section)" ( (pointer_expression "&default_common_section->children" & (field_expression "default_common_section->children" identifier -> field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) })) }) (else_clause "else if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }" else (if_statement "if (config.orphan_handling == orphan_handling_discard) {\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }" if (parenthesized_expression "(config.orphan_handling == orphan_handling_discard)" ( (binary_expression "config.orphan_handling == orphan_handling_discard" (field_expression "config.orphan_handling" identifier . field_identifier) == identifier) )) (compound_statement "{\n              plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }\n              lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n            }" { (expression_statement "plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1);" (assignment_expression "plVar35 = lang_output_section_statement_lookup("/DISCARD/",0,1)" identifier = (call_expression "lang_output_section_statement_lookup("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }" if (parenthesized_expression "((plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0))))" ( (binary_expression "(plVar35->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))" (parenthesized_expression "(plVar35->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar35->addr_tree == (etree_union *)0x0" (field_expression "plVar35->addr_tree" identifier -> field_identifier) == (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)" (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((pbVar52->flags & 3) == 0)" ( (binary_expression "(pbVar52->flags & 3) == 0" (parenthesized_expression "(pbVar52->flags & 3)" ( (binary_expression "pbVar52->flags & 3" (field_expression "pbVar52->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                peVar41 = exp_intop(0);\n                plVar35->addr_tree = peVar41;\n              }" { (expression_statement "peVar41 = exp_intop(0);" (assignment_expression "peVar41 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar35->addr_tree = peVar41;" (assignment_expression "plVar35->addr_tree = peVar41" (field_expression "plVar35->addr_tree" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);" (call_expression "lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35)" identifier (argument_list "(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35)" ( (pointer_expression "&plVar35->children" & (field_expression "plVar35->children" identifier -> field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) }) (else_clause "else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }" else (compound_statement "{\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }\n              plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);\n              if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }\n            }" { (if_statement "if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }" if (parenthesized_expression "(config.orphan_handling == orphan_handling_error)" ( (binary_expression "config.orphan_handling == orphan_handling_error" (field_expression "config.orphan_handling" identifier . field_identifier) == identifier) )) (compound_statement "{\n                pbVar6 = pbVar52->owner;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar24,pbVar52,pbVar6);\n              }" { (expression_statement "pbVar6 = pbVar52->owner;" (assignment_expression "pbVar6 = pbVar52->owner" identifier = (field_expression "pbVar52->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5)" ( number_literal , (string_literal ""%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,pbVar52,pbVar6);" (call_expression "einfo(pcVar24,pbVar52,pbVar6)" identifier (argument_list "(pcVar24,pbVar52,pbVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)) {\n                iVar23 = 0;\n              }\n              else {\n                iVar23 = 0x17e;\n              }" if (parenthesized_expression "((config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0))" ( (binary_expression "(config.unique_orphan_sections == 0) &&\n                 (bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)" (parenthesized_expression "(config.unique_orphan_sections == 0)" ( (binary_expression "config.unique_orphan_sections == 0" (field_expression "config.unique_orphan_sections" identifier . field_identifier) == number_literal) )) && (parenthesized_expression "(bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0)" ( (comma_expression "bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0),\n                 bVar26 == 0" (assignment_expression "bVar26 = unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0)" identifier = (call_expression "unique_section_p(pbVar52,(lang_output_section_statement_type *)0x0)" identifier (argument_list "(pbVar52,(lang_output_section_statement_type *)0x0)" ( identifier , (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) , (binary_expression "bVar26 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                iVar23 = 0;\n              }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar23 = 0x17e;\n              }" else (compound_statement "{\n                iVar23 = 0x17e;\n              }" { (expression_statement "iVar23 = 0x17e;" (assignment_expression "iVar23 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23);" (assignment_expression "plVar35 = ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23)" identifier = (call_expression "ldemul_place_orphan(pbVar52,(char *)pbVar9,iVar23)" identifier (argument_list "(pbVar52,(char *)pbVar9,iVar23)" ( identifier , (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (plVar35 == (lang_output_section_statement_type *)0x0) {\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }" if (parenthesized_expression "(plVar35 == (lang_output_section_statement_type *)0x0)" ( (binary_expression "plVar35 == (lang_output_section_statement_type *)0x0" identifier == (cast_expression "(lang_output_section_statement_type *)0x0" ( (type_descriptor "lang_output_section_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);\n                if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }\n                lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);\n              }" { (expression_statement "plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1);" (assignment_expression "plVar35 = lang_output_section_statement_lookup((char *)pbVar9,iVar23,1)" identifier = (call_expression "lang_output_section_statement_lookup((char *)pbVar9,iVar23,1)" identifier (argument_list "((char *)pbVar9,iVar23,1)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if ((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))) {\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }" if (parenthesized_expression "((plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0))))" ( (binary_expression "(plVar35->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))" (parenthesized_expression "(plVar35->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar35->addr_tree == (etree_union *)0x0" (field_expression "plVar35->addr_tree" identifier -> field_identifier) == (cast_expression "(etree_union *)0x0" ( (type_descriptor "etree_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar52->flags & 3) == 0)" (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((pbVar52->flags & 3) == 0)" ( (binary_expression "(pbVar52->flags & 3) == 0" (parenthesized_expression "(pbVar52->flags & 3)" ( (binary_expression "pbVar52->flags & 3" (field_expression "pbVar52->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  peVar41 = exp_intop(0);\n                  plVar35->addr_tree = peVar41;\n                }" { (expression_statement "peVar41 = exp_intop(0);" (assignment_expression "peVar41 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar35->addr_tree = peVar41;" (assignment_expression "plVar35->addr_tree = peVar41" (field_expression "plVar35->addr_tree" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35);" (call_expression "lang_add_section(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35)" identifier (argument_list "(&plVar35->children,pbVar52,(flag_info *)0x0,plVar35)" ( (pointer_expression "&plVar35->children" & (field_expression "plVar35->children" identifier -> field_identifier)) , identifier , (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) })) (if_statement "if (config.orphan_handling == orphan_handling_warn) {\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }" if (parenthesized_expression "(config.orphan_handling == orphan_handling_warn)" ( (binary_expression "config.orphan_handling == orphan_handling_warn" (field_expression "config.orphan_handling" identifier . field_identifier) == identifier) )) (compound_statement "{\n                pcVar24 = plVar35->name;\n                pbVar6 = pbVar52->owner;\n                pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar28,pbVar52,pbVar6,pcVar24);\n              }" { (expression_statement "pcVar24 = plVar35->name;" (assignment_expression "pcVar24 = plVar35->name" identifier = (field_expression "plVar35->name" identifier -> field_identifier)) ;) (expression_statement "pbVar6 = pbVar52->owner;" (assignment_expression "pbVar6 = pbVar52->owner" identifier = (field_expression "pbVar52->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5)" ( number_literal , (string_literal ""%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pbVar52,pbVar6,pcVar24);" (call_expression "einfo(pcVar28,pbVar52,pbVar6,pcVar24)" identifier (argument_list "(pcVar28,pbVar52,pbVar6,pcVar24)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            pbVar52->output_section = pbVar34;\n          }" else (compound_statement "{\n            pbVar52->output_section = pbVar34;\n          }" { (expression_statement "pbVar52->output_section = pbVar34;" (assignment_expression "pbVar52->output_section = pbVar34" (field_expression "pbVar52->output_section" identifier -> field_identifier) = identifier) ;) }))) })) (expression_statement "pbVar52 = pbVar52->next;" (assignment_expression "pbVar52 = pbVar52->next" identifier = (field_expression "pbVar52->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar52 == (bfd_section *)0x0) break;" if (parenthesized_expression "(pbVar52 == (bfd_section *)0x0)" ( (binary_expression "pbVar52 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) (expression_statement "bVar42 = link_info._0_1_ & 3;" (assignment_expression "bVar42 = link_info._0_1_ & 3" identifier = (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal)) ;) (expression_statement "ppbVar59 = start_stop_syms;" (assignment_expression "ppbVar59 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar47 = lang_output_section_statement.head;" (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (if_statement "if (bVar42 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }" if (parenthesized_expression "(bVar42 != 2)" ( (binary_expression "bVar42 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }" { (expression_statement "(*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);" (call_expression "(*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_merge_sections)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_merge_sections" * (field_expression "(link_info.output_bfd)->xvec->_bfd_merge_sections" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(link_info.output_bfd,&link_info)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) ))) ;) (expression_statement "iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text");" (assignment_expression "iVar23 = bfd_get_section_by_name(link_info.output_bfd,".text")" identifier = (call_expression "bfd_get_section_by_name(link_info.output_bfd,".text")" identifier (argument_list "(link_info.output_bfd,".text")" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (iVar23 == 0) {\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar42 = link_info._0_1_ & 3;\n      ppbVar59 = start_stop_syms;\n      plVar47 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }" { (expression_statement "bVar42 = link_info._0_1_ & 3;" (assignment_expression "bVar42 = link_info._0_1_ & 3" identifier = (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal)) ;) (expression_statement "ppbVar59 = start_stop_syms;" (assignment_expression "ppbVar59 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar47 = lang_output_section_statement.head;" (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }) (else_clause "else {\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" else (compound_statement "{\n      bVar42 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" { (expression_statement "bVar42 = link_info._0_1_ & 3;" (assignment_expression "bVar42 = link_info._0_1_ & 3" identifier = (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal)) ;) (if_statement "if (config.text_read_only == 0) {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" if (parenthesized_expression "(config.text_read_only == 0)" ( (binary_expression "config.text_read_only == 0" (field_expression "config.text_read_only" identifier . field_identifier) == number_literal) )) (compound_statement "{\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar23 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "ppbVar59 = start_stop_syms;" (assignment_expression "ppbVar59 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar47 = lang_output_section_statement.head;" (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }) (else_clause "else {\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" else (compound_statement "{\n        *(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;\n        ppbVar59 = start_stop_syms;\n        plVar47 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar23 + 0x14) = *(uint *)(iVar23 + 0x14) | 8" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar23 + 0x14) | 8" (pointer_expression "*(uint *)(iVar23 + 0x14)" * (cast_expression "(uint *)(iVar23 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x14)" ( (binary_expression "iVar23 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "ppbVar59 = start_stop_syms;" (assignment_expression "ppbVar59 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar47 = lang_output_section_statement.head;" (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) }))) }))) })) (for_statement "for (; start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    paVar44 = (plVar47->data_statement).output_section;\n    if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }\n    ppbVar59 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }" for ( ; (comma_expression "start_stop_syms = ppbVar59, link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0" (assignment_expression "start_stop_syms = ppbVar59" identifier = identifier) , (comma_expression "link_info.output_bfd = pbVar6,\n      plVar47 != (lang_statement_union *)0x0" (assignment_expression "link_info.output_bfd = pbVar6" (field_expression "link_info.output_bfd" identifier . field_identifier) = identifier) , (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar47->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar47->wild_statement).section_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    paVar44 = (plVar47->data_statement).output_section;\n    if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }\n    ppbVar59 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }" { (expression_statement "paVar44 = (plVar47->data_statement).output_section;" (assignment_expression "paVar44 = (plVar47->data_statement).output_section" identifier = (field_expression "(plVar47->data_statement).output_section" (parenthesized_expression "(plVar47->data_statement)" ( (field_expression "plVar47->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))) {\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }" if (parenthesized_expression "((((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma))))" ( (binary_expression "(((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))" (parenthesized_expression "(((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0))" ( (binary_expression "((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)" (parenthesized_expression "((paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))" ( (binary_expression "(paVar44 != (asection *)0x0) &&\n         ((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" (parenthesized_expression "(paVar44 != (asection *)0x0)" ( (binary_expression "paVar44 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" ( (binary_expression "(plVar47->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0" (field_expression "(plVar47->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(walk_wild_section_handler_t)0x0" ( (type_descriptor "walk_wild_section_handler_t" type_identifier) ) number_literal)) ))) )) && (parenthesized_expression "((plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0)" ( (binary_expression "(plVar47->wild_statement).handler_data[2] == (wildcard_list *)0x0" (subscript_expression "(plVar47->wild_statement).handler_data[2]" (field_expression "(plVar47->wild_statement).handler_data" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) == (cast_expression "(wildcard_list *)0x0" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)))" ( (parenthesized_expression "((plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma))" ( (binary_expression "(plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)" (binary_expression "(plVar47->wild_statement).handler_data[1] == (wildcard_list *)0x0" (subscript_expression "(plVar47->wild_statement).handler_data[1]" (field_expression "(plVar47->wild_statement).handler_data" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) == (cast_expression "(wildcard_list *)0x0" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "((plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma)" ( (binary_expression "(plVar47->wild_statement).exclude_name_list == (name_list *)paVar44->lma" (field_expression "(plVar47->wild_statement).exclude_name_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) == (cast_expression "(name_list *)paVar44->lma" ( (type_descriptor "name_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar44->lma" identifier -> field_identifier))) ))) )) ))) )) (compound_statement "{\n      (plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;\n    }" { (expression_statement "(plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size;" (assignment_expression "(plVar47->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)paVar44->size" (field_expression "(plVar47->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(walk_wild_section_handler_t)paVar44->size" ( (type_descriptor "walk_wild_section_handler_t" type_identifier) ) (field_expression "paVar44->size" identifier -> field_identifier))) ;) })) (expression_statement "ppbVar59 = start_stop_syms;" (assignment_expression "ppbVar59 = start_stop_syms" identifier = identifier) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) })) (if_statement "if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar37 = ppbVar59 + start_stop_count;\n    do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }" if (parenthesized_expression "((config.build_constructors != 0) && (start_stop_count != 0))" ( (binary_expression "(config.build_constructors != 0) && (start_stop_count != 0)" (parenthesized_expression "(config.build_constructors != 0)" ( (binary_expression "config.build_constructors != 0" (field_expression "config.build_constructors" identifier . field_identifier) != number_literal) )) && (parenthesized_expression "(start_stop_count != 0)" ( (binary_expression "start_stop_count != 0" identifier != number_literal) ))) )) (compound_statement "{\n    ppbVar37 = ppbVar59 + start_stop_count;\n    do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }" { (expression_statement "ppbVar37 = ppbVar59 + start_stop_count;" (assignment_expression "ppbVar37 = ppbVar59 + start_stop_count" identifier = (binary_expression "ppbVar59 + start_stop_count" identifier + identifier)) ;) (do_statement "do {\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    } while (ppbVar59 != ppbVar37);" do (compound_statement "{\n      while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }\n      ppbVar59 = ppbVar59 + 1;\n    }" { (while_statement "while (pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0) {\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }" while (parenthesized_expression "(pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0)" ( (comma_expression "pbVar11 = *ppbVar59, (pbVar11->field_0xd & 8) == 0" (assignment_expression "pbVar11 = *ppbVar59" identifier = (pointer_expression "*ppbVar59" * identifier)) , (binary_expression "(pbVar11->field_0xd & 8) == 0" (parenthesized_expression "(pbVar11->field_0xd & 8)" ( (binary_expression "pbVar11->field_0xd & 8" (field_expression "pbVar11->field_0xd" identifier -> field_identifier) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pbVar65 = (pbVar11->u).undef.abfd;\n        puVar1 = *(undefined4 **)&pbVar65->proxy_origin;\n        if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar59 = ppbVar59 + 1;\n        if (ppbVar59 == ppbVar37) goto LAB_000288f7;\n      }" { (expression_statement "pbVar65 = (pbVar11->u).undef.abfd;" (assignment_expression "pbVar65 = (pbVar11->u).undef.abfd" identifier = (field_expression "(pbVar11->u).undef.abfd" (field_expression "(pbVar11->u).undef" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "puVar1 = *(undefined4 **)&pbVar65->proxy_origin;" (assignment_expression "puVar1 = *(undefined4 **)&pbVar65->proxy_origin" identifier = (pointer_expression "*(undefined4 **)&pbVar65->proxy_origin" * (cast_expression "(undefined4 **)&pbVar65->proxy_origin" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pbVar65->proxy_origin" & (field_expression "pbVar65->proxy_origin" identifier -> field_identifier))))) ;) (if_statement "if (((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)) {\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }" if (parenthesized_expression "(((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0))" ( (binary_expression "((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)) ||\n           (iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)" (parenthesized_expression "((puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6))" ( (binary_expression "(puVar1 == (undefined4 *)0x0) || ((bfd *)puVar1[0x25] != pbVar6)" (parenthesized_expression "(puVar1 == (undefined4 *)0x0)" ( (binary_expression "puVar1 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((bfd *)puVar1[0x25] != pbVar6)" ( (binary_expression "(bfd *)puVar1[0x25] != pbVar6" (cast_expression "(bfd *)puVar1[0x25]" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[0x25]" identifier [ number_literal ])) != identifier) ))) )) || (parenthesized_expression "(iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0)" ( (comma_expression "iVar23 = strcmp(pbVar65->filename,(char *)*puVar1), iVar23 != 0" (assignment_expression "iVar23 = strcmp(pbVar65->filename,(char *)*puVar1)" identifier = (call_expression "strcmp(pbVar65->filename,(char *)*puVar1)" identifier (argument_list "(pbVar65->filename,(char *)*puVar1)" ( (field_expression "pbVar65->filename" identifier -> field_identifier) , (cast_expression "(char *)*puVar1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar1" * identifier)) )))) , (binary_expression "iVar23 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          pbVar11->field_0xc = 1;\n          (pbVar11->u).undef.abfd = (bfd *)0x0;\n          break;\n        }" { (expression_statement "pbVar11->field_0xc = 1;" (assignment_expression "pbVar11->field_0xc = 1" (field_expression "pbVar11->field_0xc" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pbVar11->u).undef.abfd = (bfd *)0x0;" (assignment_expression "(pbVar11->u).undef.abfd = (bfd *)0x0" (field_expression "(pbVar11->u).undef.abfd" (field_expression "(pbVar11->u).undef" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "ppbVar59 = ppbVar59 + 1;" (assignment_expression "ppbVar59 = ppbVar59 + 1" identifier = (binary_expression "ppbVar59 + 1" identifier + number_literal)) ;) (if_statement "if (ppbVar59 == ppbVar37) goto LAB_000288f7;" if (parenthesized_expression "(ppbVar59 == ppbVar37)" ( (binary_expression "ppbVar59 == ppbVar37" identifier == identifier) )) (goto_statement "goto LAB_000288f7;" goto statement_identifier ;)) })) (expression_statement "ppbVar59 = ppbVar59 + 1;" (assignment_expression "ppbVar59 = ppbVar59 + 1" identifier = (binary_expression "ppbVar59 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar59 != ppbVar37)" ( (binary_expression "ppbVar59 != ppbVar37" identifier != identifier) )) ;) })) (labeled_statement "LAB_000288f7:\n  if (bVar42 != 2) {\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }" statement_identifier : (if_statement "if (bVar42 != 2) {\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }" if (parenthesized_expression "(bVar42 != 2)" ( (binary_expression "bVar42 != 2" identifier != number_literal) )) (compound_statement "{\n    for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }\n  }" { (for_statement "for (paVar44 = (link_info.output_bfd)->sections; paVar44 != (asection *)0x0;\n        paVar44 = paVar44->next) {\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }" for ( (assignment_expression "paVar44 = (link_info.output_bfd)->sections" identifier = (field_expression "(link_info.output_bfd)->sections" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ; (binary_expression "paVar44 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar44 = paVar44->next" identifier = (field_expression "paVar44->next" identifier -> field_identifier)) ) (compound_statement "{\n      pcVar24 = paVar44->name;\n      sVar25 = strlen(pcVar24);\n      pcVar28 = (char *)xmalloc(sVar25 + 10);\n      sprintf(pcVar28,".startof.%s",pcVar24);\n      lang_define_start_stop(pcVar28,paVar44);\n      builtin_strncpy(pcVar28 + 1,".size",5);\n      lang_define_start_stop(pcVar28 + 1,paVar44);\n      free(pcVar28);\n    }" { (expression_statement "pcVar24 = paVar44->name;" (assignment_expression "pcVar24 = paVar44->name" identifier = (field_expression "paVar44->name" identifier -> field_identifier)) ;) (expression_statement "sVar25 = strlen(pcVar24);" (assignment_expression "sVar25 = strlen(pcVar24)" identifier = (call_expression "strlen(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier )))) ;) (expression_statement "pcVar28 = (char *)xmalloc(sVar25 + 10);" (assignment_expression "pcVar28 = (char *)xmalloc(sVar25 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar25 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar25 + 10)" identifier (argument_list "(sVar25 + 10)" ( (binary_expression "sVar25 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar28,".startof.%s",pcVar24);" (call_expression "sprintf(pcVar28,".startof.%s",pcVar24)" identifier (argument_list "(pcVar28,".startof.%s",pcVar24)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar28,paVar44);" (call_expression "lang_define_start_stop(pcVar28,paVar44)" identifier (argument_list "(pcVar28,paVar44)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar28 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar28 + 1,".size",5)" identifier (argument_list "(pcVar28 + 1,".size",5)" ( (binary_expression "pcVar28 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar28 + 1,paVar44);" (call_expression "lang_define_start_stop(pcVar28 + 1,paVar44)" identifier (argument_list "(pcVar28 + 1,paVar44)" ( (binary_expression "pcVar28 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar28);" (call_expression "free(pcVar28)" identifier (argument_list "(pcVar28)" ( identifier ))) ;) })) }))) (expression_statement "ldemul_before_allocation();" (call_expression "ldemul_before_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar53 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar53 = (lang_output_section_phdr_list *)0x0" identifier = (cast_expression "(lang_output_section_phdr_list *)0x0" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = (void *)xmalloc(0x28);" (assignment_expression "local_4c = (void *)xmalloc(0x28)" identifier = (cast_expression "(void *)xmalloc(0x28)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "local_44 = 10;" (assignment_expression "local_44 = 10" identifier = number_literal) ;) (for_statement "for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_50 = (lang_statement_union *)0x0;\n    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }\n    bVar57 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }\n    peVar41 = plVar8->at;\n    bVar36 = 0;\n    if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }\n    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);\n    if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }\n  }" for ( (assignment_expression "plVar8 = lang_phdr_list" identifier = identifier) ; (binary_expression "plVar8 != (lang_phdr *)0x0" identifier != (cast_expression "(lang_phdr *)0x0" ( (type_descriptor "lang_phdr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar8 = plVar8->next" identifier = (field_expression "plVar8->next" identifier -> field_identifier)) ) (compound_statement "{\n    local_50 = (lang_statement_union *)0x0;\n    for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }\n    bVar57 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }\n    peVar41 = plVar8->at;\n    bVar36 = 0;\n    if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }\n    iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);\n    if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }\n  }" { (expression_statement "local_50 = (lang_statement_union *)0x0;" (assignment_expression "local_50 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n        plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }" for ( (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar47->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar47->wild_statement).section_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n      if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < (plVar47->output_section_statement).constraint) {\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < (plVar47->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar47->output_section_statement).constraint" number_literal < (field_expression "(plVar47->output_section_statement).constraint" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n        plVar56 = (plVar47->output_section_statement).phdrs;\n        if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }\n      }" { (expression_statement "plVar56 = (plVar47->output_section_statement).phdrs;" (assignment_expression "plVar56 = (plVar47->output_section_statement).phdrs" identifier = (field_expression "(plVar47->output_section_statement).phdrs" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (plVar56 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }\n        else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }" if (parenthesized_expression "(plVar56 == (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar56 == (lang_output_section_phdr_list *)0x0" identifier == (cast_expression "(lang_output_section_phdr_list *)0x0" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }\n        }" { (if_statement "if ((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))) {\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }" if (parenthesized_expression "((((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3))))" ( (binary_expression "(((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))" (parenthesized_expression "(((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0))" ( (binary_expression "((plVar47->output_section_statement).sectype != noload_section) &&\n              ((plVar47->output_section_statement).bfd_section != (asection *)0x0)" (parenthesized_expression "((plVar47->output_section_statement).sectype != noload_section)" ( (binary_expression "(plVar47->output_section_statement).sectype != noload_section" (field_expression "(plVar47->output_section_statement).sectype" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier) != identifier) )) && (parenthesized_expression "((plVar47->output_section_statement).bfd_section != (asection *)0x0)" ( (binary_expression "(plVar47->output_section_statement).bfd_section != (asection *)0x0" (field_expression "(plVar47->output_section_statement).bfd_section" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)))" ( (parenthesized_expression "((((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3))" ( (binary_expression "(((plVar47->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)" (binary_expression "(((plVar47->output_section_statement).bfd_section)->flags & 1) != 0" (parenthesized_expression "(((plVar47->output_section_statement).bfd_section)->flags & 1)" ( (binary_expression "((plVar47->output_section_statement).bfd_section)->flags & 1" (field_expression "((plVar47->output_section_statement).bfd_section)->flags" (parenthesized_expression "((plVar47->output_section_statement).bfd_section)" ( (field_expression "(plVar47->output_section_statement).bfd_section" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3)" ( (comma_expression "plVar55 = plVar47, plVar56 = plVar53, plVar8->type != 3" (assignment_expression "plVar55 = plVar47" identifier = identifier) , (comma_expression "plVar56 = plVar53, plVar8->type != 3" (assignment_expression "plVar56 = plVar53" identifier = identifier) , (binary_expression "plVar8->type != 3" (field_expression "plVar8->type" identifier -> field_identifier) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }\n            plVar53 = (lang_output_section_phdr_list *)0x0;\n            pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar24);\n          }" { (while_statement "while( true ) {\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              plVar53 = plVar56;\n              if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;\n              plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;\n              if (plVar55 == (lang_statement_union *)0x0) break;\n              plVar56 = (plVar55->output_section_statement).phdrs;\n            }" { (expression_statement "plVar53 = plVar56;" (assignment_expression "plVar53 = plVar56" identifier = identifier) ;) (if_statement "if (plVar56 != (lang_output_section_phdr_list *)0x0) goto LAB_000289ba;" if (parenthesized_expression "(plVar56 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar56 != (lang_output_section_phdr_list *)0x0" identifier != (cast_expression "(lang_output_section_phdr_list *)0x0" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000289ba;" goto statement_identifier ;)) (expression_statement "plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next;" (assignment_expression "plVar55 = (lang_statement_union *)(plVar55->output_section_statement).next" identifier = (cast_expression "(lang_statement_union *)(plVar55->output_section_statement).next" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar55->output_section_statement).next" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (plVar55 == (lang_statement_union *)0x0) break;" if (parenthesized_expression "(plVar55 == (lang_statement_union *)0x0)" ( (binary_expression "plVar55 == (lang_statement_union *)0x0" identifier == (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "plVar56 = (plVar55->output_section_statement).phdrs;" (assignment_expression "plVar56 = (plVar55->output_section_statement).phdrs" identifier = (field_expression "(plVar55->output_section_statement).phdrs" (parenthesized_expression "(plVar55->output_section_statement)" ( (field_expression "plVar55->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "plVar53 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar53 = (lang_output_section_phdr_list *)0x0" identifier = (cast_expression "(lang_output_section_phdr_list *)0x0" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier (argument_list "(0,"%F%P: no sections assigned to phdrs\n",5)" ( number_literal , (string_literal ""%F%P: no sections assigned to phdrs\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24);" (call_expression "einfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) })) }) (else_clause "else {\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }" else (compound_statement "{\n          plVar53 = plVar56;\n          plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }\n        }" { (expression_statement "plVar53 = plVar56;" (assignment_expression "plVar53 = plVar56" identifier = identifier) ;) (expression_statement "plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail;" (assignment_expression "plVar7 = (lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail" identifier = (cast_expression "(lang_output_section_phdr_list *)(plVar47->wild_statement).children.tail" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar47->wild_statement).children.tail" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (while_statement "while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }" while (parenthesized_expression "(plVar7 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar7 != (lang_output_section_phdr_list *)0x0" identifier != (cast_expression "(lang_output_section_phdr_list *)0x0" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);\n            uVar46 = local_44;\n            if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }\n            plVar56 = plVar56->next;\n            local_44 = uVar46;\n            plVar7 = plVar56;\n          }" { (labeled_statement "LAB_000289ba:\n            iVar23 = strcmp(plVar56->name,plVar8->name);" statement_identifier : (expression_statement "iVar23 = strcmp(plVar56->name,plVar8->name);" (assignment_expression "iVar23 = strcmp(plVar56->name,plVar8->name)" identifier = (call_expression "strcmp(plVar56->name,plVar8->name)" identifier (argument_list "(plVar56->name,plVar8->name)" ( (field_expression "plVar56->name" identifier -> field_identifier) , (field_expression "plVar8->name" identifier -> field_identifier) )))) ;)) (expression_statement "uVar46 = local_44;" (assignment_expression "uVar46 = local_44" identifier = identifier) ;) (if_statement "if (iVar23 == 0) {\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;\n              local_50 = (lang_statement_union *)((int)local_50 + 1);\n              plVar56->used = 1;\n            }" { (if_statement "if (local_44 <= local_50) {\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_50)" ( (binary_expression "local_44 <= local_50" identifier <= identifier) )) (compound_statement "{\n                uVar46 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" { (expression_statement "uVar46 = local_44 * 2;" (assignment_expression "uVar46 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_4c = (void *)xrealloc(local_4c,local_44 << 3);" (assignment_expression "local_4c = (void *)xrealloc(local_4c,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_4c,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_4c,local_44 << 3)" identifier (argument_list "(local_4c,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail;" (assignment_expression "*(lang_statement_union ***)((int)local_4c + (int)local_50 * 4) =\n                   (plVar47->wild_statement).children.tail" (pointer_expression "*(lang_statement_union ***)((int)local_4c + (int)local_50 * 4)" * (cast_expression "(lang_statement_union ***)((int)local_4c + (int)local_50 * 4)" ( (type_descriptor "lang_statement_union ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)local_4c + (int)local_50 * 4)" ( (binary_expression "(int)local_4c + (int)local_50 * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_50 * 4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (field_expression "(plVar47->wild_statement).children.tail" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "local_50 = (lang_statement_union *)((int)local_50 + 1);" (assignment_expression "local_50 = (lang_statement_union *)((int)local_50 + 1)" identifier = (cast_expression "(lang_statement_union *)((int)local_50 + 1)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + 1)" ( (binary_expression "(int)local_50 + 1" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "plVar56->used = 1;" (assignment_expression "plVar56->used = 1" (field_expression "plVar56->used" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "plVar56 = plVar56->next;" (assignment_expression "plVar56 = plVar56->next" identifier = (field_expression "plVar56->next" identifier -> field_identifier)) ;) (expression_statement "local_44 = uVar46;" (assignment_expression "local_44 = uVar46" identifier = identifier) ;) (expression_statement "plVar7 = plVar56;" (assignment_expression "plVar7 = plVar56" identifier = identifier) ;) })) }))) })) })) (expression_statement "bVar57 = 0;" (assignment_expression "bVar57 = 0" identifier = number_literal) ;) (if_statement "if (plVar8->flags != (etree_type *)0x0) {\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }" if (parenthesized_expression "(plVar8->flags != (etree_type *)0x0)" ( (binary_expression "plVar8->flags != (etree_type *)0x0" (field_expression "plVar8->flags" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");\n    }" { (expression_statement "bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags");" (assignment_expression "bVar57 = exp_get_vma(plVar8->flags,0,"phdr flags")" identifier = (call_expression "exp_get_vma(plVar8->flags,0,"phdr flags")" identifier (argument_list "(plVar8->flags,0,"phdr flags")" ( (field_expression "plVar8->flags" identifier -> field_identifier) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "peVar41 = plVar8->at;" (assignment_expression "peVar41 = plVar8->at" identifier = (field_expression "plVar8->at" identifier -> field_identifier)) ;) (expression_statement "bVar36 = 0;" (assignment_expression "bVar36 = 0" identifier = number_literal) ;) (if_statement "if (peVar41 != (etree_type *)0x0) {\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }" if (parenthesized_expression "(peVar41 != (etree_type *)0x0)" ( (binary_expression "peVar41 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar36 = exp_get_vma(peVar41,0,"phdr load address");\n      peVar41 = plVar8->at;\n    }" { (expression_statement "bVar36 = exp_get_vma(peVar41,0,"phdr load address");" (assignment_expression "bVar36 = exp_get_vma(peVar41,0,"phdr load address")" identifier = (call_expression "exp_get_vma(peVar41,0,"phdr load address")" identifier (argument_list "(peVar41,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "peVar41 = plVar8->at;" (assignment_expression "peVar41 = plVar8->at" identifier = (field_expression "plVar8->at" identifier -> field_identifier)) ;) })) (expression_statement "iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c);" (assignment_expression "iVar23 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c)" identifier = (call_expression "bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c)" identifier (argument_list "(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             bVar57,peVar41 != (etree_type *)0x0,bVar36,plVar8->filehdr,\n                             plVar8->phdrs,local_50,local_4c)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (field_expression "plVar8->type" identifier -> field_identifier) , (binary_expression "plVar8->flags != (etree_type *)0x0" (field_expression "plVar8->flags" identifier -> field_identifier) != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , identifier , (binary_expression "peVar41 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , identifier , (field_expression "plVar8->filehdr" identifier -> field_identifier) , (field_expression "plVar8->phdrs" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if (iVar23 == 0) {\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar24);\n    }" { (expression_statement "pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_record_phdr failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_record_phdr failed: %E\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24);" (call_expression "einfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) })) })) (expression_statement "free(local_4c);" (call_expression "free(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (expression_statement "has_relro_section = extraout_ECX;" (assignment_expression "has_relro_section = extraout_ECX" identifier = identifier) ;) (for_statement "for (plVar47 = lang_output_section_statement.head; plVar47 != (lang_statement_union *)0x0;\n      plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list) {\n    if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "plVar47 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar47 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "plVar47 = (lang_statement_union *)(plVar47->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar47->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar47->wild_statement).section_list" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)) {\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0))" ( (binary_expression "(-1 < (plVar47->output_section_statement).constraint) &&\n       ((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)" (parenthesized_expression "(-1 < (plVar47->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar47->output_section_statement).constraint" number_literal < (field_expression "(plVar47->output_section_statement).constraint" (parenthesized_expression "(plVar47->output_section_statement)" ( (field_expression "plVar47->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "((plVar47->wild_statement).children.tail != (lang_statement_union **)0x0)" ( (binary_expression "(plVar47->wild_statement).children.tail != (lang_statement_union **)0x0" (field_expression "(plVar47->wild_statement).children.tail" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) != (cast_expression "(lang_statement_union **)0x0" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n      paVar44 = (asection *)(plVar47->wild_statement).tree;\njoined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "paVar44 = (asection *)(plVar47->wild_statement).tree;" (assignment_expression "paVar44 = (asection *)(plVar47->wild_statement).tree" identifier = (cast_expression "(asection *)(plVar47->wild_statement).tree" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar47->wild_statement).tree" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (labeled_statement "joined_r0x00028aeb:\n      if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (paVar44 != (asection *)0x0) {\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(paVar44 != (asection *)0x0)" ( (binary_expression "paVar44 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar66 = false;\n          bVar67 = paVar44->index == 0;\n          if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }\n          paVar44 = (asection *)paVar44->name;\n          if (paVar44 == (asection *)0x0) break;\n        }" { (expression_statement "bVar66 = false;" (assignment_expression "bVar66 = false" identifier = false) ;) (expression_statement "bVar67 = paVar44->index == 0;" (assignment_expression "bVar67 = paVar44->index == 0" identifier = (binary_expression "paVar44->index == 0" (field_expression "paVar44->index" identifier -> field_identifier) == number_literal)) ;) (if_statement "if (bVar67) {\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }" if (parenthesized_expression "(bVar67)" ( identifier )) (compound_statement "{\n            pbVar9 = (byte *)paVar44->id;\n            has_relro_section = (bfd_boolean *)0x5;\n            pbVar40 = pbVar9;\n            pbVar64 = (byte *)0x3d35d;\n            do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);\n            if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;\n          }" { (expression_statement "pbVar9 = (byte *)paVar44->id;" (assignment_expression "pbVar9 = (byte *)paVar44->id" identifier = (cast_expression "(byte *)paVar44->id" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar44->id" identifier -> field_identifier))) ;) (expression_statement "has_relro_section = (bfd_boolean *)0x5;" (assignment_expression "has_relro_section = (bfd_boolean *)0x5" identifier = (cast_expression "(bfd_boolean *)0x5" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar40 = pbVar9;" (assignment_expression "pbVar40 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar64 = (byte *)0x3d35d;" (assignment_expression "pbVar64 = (byte *)0x3d35d" identifier = (cast_expression "(byte *)0x3d35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            } while (bVar67);" do (compound_statement "{\n              if (has_relro_section == (bfd_boolean *)0x0) break;\n              has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);\n              bVar66 = *pbVar40 < *pbVar64;\n              bVar67 = *pbVar40 == *pbVar64;\n              pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;\n              pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;\n            }" { (if_statement "if (has_relro_section == (bfd_boolean *)0x0) break;" if (parenthesized_expression "(has_relro_section == (bfd_boolean *)0x0)" ( (binary_expression "has_relro_section == (bfd_boolean *)0x0" identifier == (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "has_relro_section = (bfd_boolean *)((int)has_relro_section + -1);" (assignment_expression "has_relro_section = (bfd_boolean *)((int)has_relro_section + -1)" identifier = (cast_expression "(bfd_boolean *)((int)has_relro_section + -1)" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)has_relro_section + -1)" ( (binary_expression "(int)has_relro_section + -1" (cast_expression "(int)has_relro_section" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar66 = *pbVar40 < *pbVar64;" (assignment_expression "bVar66 = *pbVar40 < *pbVar64" identifier = (binary_expression "*pbVar40 < *pbVar64" (pointer_expression "*pbVar40" * identifier) < (pointer_expression "*pbVar64" * identifier))) ;) (expression_statement "bVar67 = *pbVar40 == *pbVar64;" (assignment_expression "bVar67 = *pbVar40 == *pbVar64" identifier = (binary_expression "*pbVar40 == *pbVar64" (pointer_expression "*pbVar40" * identifier) == (pointer_expression "*pbVar64" * identifier))) ;) (expression_statement "pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1;" (assignment_expression "pbVar40 = pbVar40 + (uint)bVar68 * -2 + 1" identifier = (binary_expression "pbVar40 + (uint)bVar68 * -2 + 1" (binary_expression "pbVar40 + (uint)bVar68 * -2" identifier + (binary_expression "(uint)bVar68 * -2" (cast_expression "(uint)bVar68" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1;" (assignment_expression "pbVar64 = pbVar64 + (uint)bVar68 * -2 + 1" identifier = (binary_expression "pbVar64 + (uint)bVar68 * -2 + 1" (binary_expression "pbVar64 + (uint)bVar68 * -2" identifier + (binary_expression "(uint)bVar68 * -2" (cast_expression "(uint)bVar68" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar67)" ( identifier )) ;) (if_statement "if ((!bVar66 && !bVar67) != bVar66) goto code_r0x00028b27;" if (parenthesized_expression "((!bVar66 && !bVar67) != bVar66)" ( (binary_expression "(!bVar66 && !bVar67) != bVar66" (parenthesized_expression "(!bVar66 && !bVar67)" ( (binary_expression "!bVar66 && !bVar67" (unary_expression "!bVar66" ! identifier) && (unary_expression "!bVar67" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00028b27;" goto statement_identifier ;)) })) (expression_statement "paVar44 = (asection *)paVar44->name;" (assignment_expression "paVar44 = (asection *)paVar44->name" identifier = (cast_expression "(asection *)paVar44->name" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar44->name" identifier -> field_identifier))) ;) (if_statement "if (paVar44 == (asection *)0x0) break;" if (parenthesized_expression "(paVar44 == (asection *)0x0)" ( (binary_expression "paVar44 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2))" ( (binary_expression "((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)" (parenthesized_expression "((link_info._3_1_ & 0x10) != 0)" ( (binary_expression "(link_info._3_1_ & 0x10) != 0" (parenthesized_expression "(link_info._3_1_ & 0x10)" ( (binary_expression "link_info._3_1_ & 0x10" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((link_info._0_1_ & 3) != 2)" ( (binary_expression "(link_info._0_1_ & 3) != 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    power = 0;\n    lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);\n    if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }\n  }" { (expression_statement "power = 0;" (assignment_expression "power = 0" identifier = number_literal) ;) (expression_statement "lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section);" (call_expression "lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section)" identifier (argument_list "(expld.dataseg.relro_start_stat,(seg_align_type *)&power,has_relro_section)" ( (field_expression "expld.dataseg.relro_start_stat" (field_expression "expld.dataseg" identifier . field_identifier) . field_identifier) , (cast_expression "(seg_align_type *)&power" ( (type_descriptor "seg_align_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&power" & identifier)) , identifier ))) ;) (if_statement "if (power == 0) {\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }" if (parenthesized_expression "(power == 0)" ( (binary_expression "power == 0" identifier == number_literal) )) (compound_statement "{\n      link_info._3_1_ = link_info._3_1_ & 0xef;\n    }" { (expression_statement "link_info._3_1_ = link_info._3_1_ & 0xef;" (assignment_expression "link_info._3_1_ = link_info._3_1_ & 0xef" (field_expression "link_info._3_1_" identifier . field_identifier) = (binary_expression "link_info._3_1_ & 0xef" (field_expression "link_info._3_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations));" (call_expression "lang_size_sections((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations))" identifier (argument_list "((bfd_boolean *)0x0,\n                     (uint)(1 < (uint)link_info.disable_target_specific_optimizations))" ( (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (call_expression "(uint)(1 < (uint)link_info.disable_target_specific_optimizations)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < (uint)link_info.disable_target_specific_optimizations)" ( (binary_expression "1 < (uint)link_info.disable_target_specific_optimizations" number_literal < (cast_expression "(uint)link_info.disable_target_specific_optimizations" ( (type_descriptor "uint" type_identifier) ) (field_expression "link_info.disable_target_specific_optimizations" identifier . field_identifier))) ))) ))) ;) (expression_statement "ldemul_after_allocation();" (call_expression "ldemul_after_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar6 = link_info.output_bfd;" (assignment_expression "pbVar6 = link_info.output_bfd" identifier = (field_expression "link_info.output_bfd" identifier . field_identifier)) ;) (expression_statement "uVar46 = opb_shift;" (assignment_expression "uVar46 = opb_shift" identifier = identifier) ;) (if_statement "if (start_stop_count != 0) {\n    ppbVar59 = start_stop_syms + start_stop_count;\n    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);\n    ppbVar37 = start_stop_syms;\n    do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }" if (parenthesized_expression "(start_stop_count != 0)" ( (binary_expression "start_stop_count != 0" identifier != number_literal) )) (compound_statement "{\n    ppbVar59 = start_stop_syms + start_stop_count;\n    pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);\n    ppbVar37 = start_stop_syms;\n    do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);\n  }" { (expression_statement "ppbVar59 = start_stop_syms + start_stop_count;" (assignment_expression "ppbVar59 = start_stop_syms + start_stop_count" identifier = (binary_expression "start_stop_syms + start_stop_count" identifier + identifier)) ;) (expression_statement "pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150);" (assignment_expression "pbVar65 = (bfd *)(PTR__bfd_std_section_00090fc4 + 0x150)" identifier = (cast_expression "(bfd *)(PTR__bfd_std_section_00090fc4 + 0x150)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00090fc4 + 0x150)" ( (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal) )))) ;) (expression_statement "ppbVar37 = start_stop_syms;" (assignment_expression "ppbVar37 = start_stop_syms" identifier = identifier) ;) (do_statement "do {\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    } while (ppbVar59 != ppbVar37);" do (compound_statement "{\n      while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }\n      ppbVar37 = ppbVar37 + 1;\n    }" { (while_statement "while (pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3) {\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }" while (parenthesized_expression "(pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3)" ( (comma_expression "pbVar11 = *ppbVar37, (*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3" (assignment_expression "pbVar11 = *ppbVar37" identifier = (pointer_expression "*ppbVar37" * identifier)) , (binary_expression "(*(ushort *)&pbVar11->field_0xc & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)&pbVar11->field_0xc & 0x8ff)" ( (binary_expression "*(ushort *)&pbVar11->field_0xc & 0x8ff" (pointer_expression "*(ushort *)&pbVar11->field_0xc" * (cast_expression "(ushort *)&pbVar11->field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar11->field_0xc" & (field_expression "pbVar11->field_0xc" identifier -> field_identifier)))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar24 = (pbVar11->root).string;\n        local_4c._0_1_ = (byte)uVar46;\n        if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar24[2] != 'i') break;\n        ppbVar37 = ppbVar37 + 1;\n        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);\n        (pbVar11->u).undef.abfd = pbVar65;\n        if (ppbVar59 == ppbVar37) goto LAB_00028c60;\n      }" { (expression_statement "pcVar24 = (pbVar11->root).string;" (assignment_expression "pcVar24 = (pbVar11->root).string" identifier = (field_expression "(pbVar11->root).string" (parenthesized_expression "(pbVar11->root)" ( (field_expression "pbVar11->root" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_4c._0_1_ = (byte)uVar46;" (assignment_expression "local_4c._0_1_ = (byte)uVar46" (field_expression "local_4c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar46" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar24 != '.') {\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar24 != '.')" ( (binary_expression "*pcVar24 != '.'" (pointer_expression "*pcVar24" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar22 = pbVar6->xvec->symbol_leading_char;\n          pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;\n          (pbVar11->u).undef.abfd = pbVar10;\n          if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" { (expression_statement "cVar22 = pbVar6->xvec->symbol_leading_char;" (assignment_expression "cVar22 = pbVar6->xvec->symbol_leading_char" identifier = (field_expression "pbVar6->xvec->symbol_leading_char" (field_expression "pbVar6->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section;" (assignment_expression "pbVar10 = (bfd *)((pbVar11->u).def.section)->output_section" identifier = (cast_expression "(bfd *)((pbVar11->u).def.section)->output_section" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((pbVar11->u).def.section)->output_section" (parenthesized_expression "((pbVar11->u).def.section)" ( (field_expression "(pbVar11->u).def.section" (field_expression "(pbVar11->u).def" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier))) ;) (expression_statement "(pbVar11->u).undef.abfd = pbVar10;" (assignment_expression "(pbVar11->u).undef.abfd = pbVar10" (field_expression "(pbVar11->u).undef.abfd" (field_expression "(pbVar11->u).undef" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (pcVar24[(cVar22 != '\0') + 4] == 'o') {\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }" if (parenthesized_expression "(pcVar24[(cVar22 != '\0') + 4] == 'o')" ( (binary_expression "pcVar24[(cVar22 != '\0') + 4] == 'o'" (subscript_expression "pcVar24[(cVar22 != '\0') + 4]" identifier [ (binary_expression "(cVar22 != '\0') + 4" (parenthesized_expression "(cVar22 != '\0')" ( (binary_expression "cVar22 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            (pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);\n          }" { (expression_statement "(pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f);" (assignment_expression "(pbVar11->u).def.value = pbVar10->id >> ((byte)local_4c & 0x1f)" (field_expression "(pbVar11->u).def.value" (field_expression "(pbVar11->u).def" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "pbVar10->id >> ((byte)local_4c & 0x1f)" (field_expression "pbVar10->id" identifier -> field_identifier) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar24[2] != 'i') break;" if (parenthesized_expression "(pcVar24[2] != 'i')" ( (binary_expression "pcVar24[2] != 'i'" (subscript_expression "pcVar24[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "ppbVar37 = ppbVar37 + 1;" (assignment_expression "ppbVar37 = ppbVar37 + 1" identifier = (binary_expression "ppbVar37 + 1" identifier + number_literal)) ;) (expression_statement "(pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f);" (assignment_expression "(pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f)" (field_expression "(pbVar11->u).def.value" (field_expression "(pbVar11->u).def" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (binary_expression "((pbVar11->u).undef.abfd)->id >> ((byte)local_4c & 0x1f)" (field_expression "((pbVar11->u).undef.abfd)->id" (parenthesized_expression "((pbVar11->u).undef.abfd)" ( (field_expression "(pbVar11->u).undef.abfd" (field_expression "(pbVar11->u).undef" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "(pbVar11->u).undef.abfd = pbVar65;" (assignment_expression "(pbVar11->u).undef.abfd = pbVar65" (field_expression "(pbVar11->u).undef.abfd" (field_expression "(pbVar11->u).undef" (parenthesized_expression "(pbVar11->u)" ( (field_expression "pbVar11->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (ppbVar59 == ppbVar37) goto LAB_00028c60;" if (parenthesized_expression "(ppbVar59 == ppbVar37)" ( (binary_expression "ppbVar59 == ppbVar37" identifier == identifier) )) (goto_statement "goto LAB_00028c60;" goto statement_identifier ;)) })) (expression_statement "ppbVar37 = ppbVar37 + 1;" (assignment_expression "ppbVar37 = ppbVar37 + 1" identifier = (binary_expression "ppbVar37 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar59 != ppbVar37)" ( (binary_expression "ppbVar59 != ppbVar37" identifier != identifier) )) ;) })) (labeled_statement "LAB_00028c60:\n  lang_do_assignments(lang_final_phase_enum);" statement_identifier : (expression_statement "lang_do_assignments(lang_final_phase_enum);" (call_expression "lang_do_assignments(lang_final_phase_enum)" identifier (argument_list "(lang_final_phase_enum)" ( identifier ))) ;)) (expression_statement "ldemul_finish();" (call_expression "ldemul_finish()" identifier (argument_list "()" ( ))) ;) (expression_statement "ldexp_finalize_syms();" (call_expression "ldexp_finalize_syms()" identifier (argument_list "()" ( ))) ;) (expression_statement "prVar16 = require_defined_symbol_list;" (assignment_expression "prVar16 = require_defined_symbol_list" identifier = identifier) ;) (if_statement "if (command_line.check_section_addresses != '\0') {\n    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar34 = (link_info.output_bfd)->sections;\n    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;\n    if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }\n    prVar16 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }\n  }" if (parenthesized_expression "(command_line.check_section_addresses != '\0')" ( (binary_expression "command_line.check_section_addresses != '\0'" (field_expression "command_line.check_section_addresses" identifier . field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);\n    pbVar34 = (link_info.output_bfd)->sections;\n    uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;\n    if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }\n    prVar16 = require_defined_symbol_list;\n    if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }\n  }" { (expression_statement "cVar22 = bfd_arch_bits_per_address(link_info.output_bfd);" (assignment_expression "cVar22 = bfd_arch_bits_per_address(link_info.output_bfd)" identifier = (call_expression "bfd_arch_bits_per_address(link_info.output_bfd)" identifier (argument_list "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )))) ;) (expression_statement "pbVar34 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar34 = (link_info.output_bfd)->sections" identifier = (field_expression "(link_info.output_bfd)->sections" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1;" (assignment_expression "uVar46 = (1 << (cVar22 - 1U & 0x1f)) * 2 - 1" identifier = (binary_expression "(1 << (cVar22 - 1U & 0x1f)) * 2 - 1" (binary_expression "(1 << (cVar22 - 1U & 0x1f)) * 2" (parenthesized_expression "(1 << (cVar22 - 1U & 0x1f))" ( (binary_expression "1 << (cVar22 - 1U & 0x1f)" number_literal << (parenthesized_expression "(cVar22 - 1U & 0x1f)" ( (binary_expression "cVar22 - 1U & 0x1f" (binary_expression "cVar22 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (pbVar34 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }" if (parenthesized_expression "(pbVar34 != (bfd_section *)0x0)" ( (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);\n    }" { (do_statement "do {\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      } while (pbVar34 != (bfd_section *)0x0);" do (compound_statement "{\n        if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }\nLAB_000296b0:\n        pbVar34 = pbVar34->next;\n      }" { (if_statement "if ((pbVar34->flags & 1) != 0) {\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }" if (parenthesized_expression "((pbVar34->flags & 1) != 0)" ( (binary_expression "(pbVar34->flags & 1) != 0" (parenthesized_expression "(pbVar34->flags & 1)" ( (binary_expression "pbVar34->flags & 1" (field_expression "pbVar34->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar50 = pbVar34->vma + pbVar34->size & uVar46;\n          if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar28 = (char *)dcgettext(0,pcVar28,5);\n          einfo(pcVar28,pcVar24);\n        }" { (expression_statement "uVar50 = pbVar34->vma + pbVar34->size & uVar46;" (assignment_expression "uVar50 = pbVar34->vma + pbVar34->size & uVar46" identifier = (binary_expression "pbVar34->vma + pbVar34->size & uVar46" (binary_expression "pbVar34->vma + pbVar34->size" (field_expression "pbVar34->vma" identifier -> field_identifier) + (field_expression "pbVar34->size" identifier -> field_identifier)) & identifier)) ;) (if_statement "if ((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)) {\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50))" ( (binary_expression "(uVar50 == 0) || ((pbVar34->vma & uVar46) <= uVar50)" (parenthesized_expression "(uVar50 == 0)" ( (binary_expression "uVar50 == 0" identifier == number_literal) )) || (parenthesized_expression "((pbVar34->vma & uVar46) <= uVar50)" ( (binary_expression "(pbVar34->vma & uVar46) <= uVar50" (parenthesized_expression "(pbVar34->vma & uVar46)" ( (binary_expression "pbVar34->vma & uVar46" (field_expression "pbVar34->vma" identifier -> field_identifier) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar50 = pbVar34->size + pbVar34->lma & uVar46;\n            if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar50 = pbVar34->size + pbVar34->lma & uVar46;" (assignment_expression "uVar50 = pbVar34->size + pbVar34->lma & uVar46" identifier = (binary_expression "pbVar34->size + pbVar34->lma & uVar46" (binary_expression "pbVar34->size + pbVar34->lma" (field_expression "pbVar34->size" identifier -> field_identifier) + (field_expression "pbVar34->lma" identifier -> field_identifier)) & identifier)) ;) (if_statement "if ((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)) goto LAB_000296b0;" if (parenthesized_expression "((uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50))" ( (binary_expression "(uVar50 == 0) || ((pbVar34->lma & uVar46) <= uVar50)" (parenthesized_expression "(uVar50 == 0)" ( (binary_expression "uVar50 == 0" identifier == number_literal) )) || (parenthesized_expression "((pbVar34->lma & uVar46) <= uVar50)" ( (binary_expression "(pbVar34->lma & uVar46) <= uVar50" (parenthesized_expression "(pbVar34->lma & uVar46)" ( (binary_expression "pbVar34->lma & uVar46" (field_expression "pbVar34->lma" identifier -> field_identifier) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_000296b0;" goto statement_identifier ;)) (expression_statement "pcVar24 = pbVar34->name;" (assignment_expression "pcVar24 = pbVar34->name" identifier = (field_expression "pbVar34->name" identifier -> field_identifier)) ;) (expression_statement "pcVar28 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar28 = "%X%P: section %s LMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s LMA wraps around address space\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            pcVar24 = pbVar34->name;\n            pcVar28 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "pcVar24 = pbVar34->name;" (assignment_expression "pcVar24 = pbVar34->name" identifier = (field_expression "pbVar34->name" identifier -> field_identifier)) ;) (expression_statement "pcVar28 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar28 = "%X%P: section %s VMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s VMA wraps around address space\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "pcVar28 = (char *)dcgettext(0,pcVar28,5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,pcVar28,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar28,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar28,5)" identifier (argument_list "(0,pcVar28,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_000296b0:\n        pbVar34 = pbVar34->next;" statement_identifier : (expression_statement "pbVar34 = pbVar34->next;" (assignment_expression "pbVar34 = pbVar34->next" identifier = (field_expression "pbVar34->next" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(pbVar34 != (bfd_section *)0x0)" ( (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "prVar16 = require_defined_symbol_list;" (assignment_expression "prVar16 = require_defined_symbol_list" identifier = identifier) ;) (if_statement "if (1 < (link_info.output_bfd)->section_count) {\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }" if (parenthesized_expression "(1 < (link_info.output_bfd)->section_count)" ( (binary_expression "1 < (link_info.output_bfd)->section_count" number_literal < (field_expression "(link_info.output_bfd)->section_count" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) )) (compound_statement "{\n      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);\n      uVar46 = 0;\n      pbVar34 = (link_info.output_bfd)->sections;\n      if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(__ptr);\n      prVar16 = require_defined_symbol_list;\n    }" { (expression_statement "__ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);" (assignment_expression "__ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3)" identifier = (cast_expression "(int *)xmalloc((link_info.output_bfd)->section_count << 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((link_info.output_bfd)->section_count << 3)" identifier (argument_list "((link_info.output_bfd)->section_count << 3)" ( (binary_expression "(link_info.output_bfd)->section_count << 3" (field_expression "(link_info.output_bfd)->section_count" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) << number_literal) ))))) ;) (expression_statement "uVar46 = 0;" (assignment_expression "uVar46 = 0" identifier = number_literal) ;) (expression_statement "pbVar34 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar34 = (link_info.output_bfd)->sections" identifier = (field_expression "(link_info.output_bfd)->sections" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if (pbVar34 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" if (parenthesized_expression "(pbVar34 != (bfd_section *)0x0)" ( (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);\n        if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" { (do_statement "do {\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        } while (pbVar34 != (bfd_section *)0x0);" do (compound_statement "{\n          if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }\n          pbVar34 = pbVar34->next;\n        }" { (if_statement "if ((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)) {\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }" if (parenthesized_expression "((((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0))" ( (binary_expression "(((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)) &&\n             (pbVar34->size != 0)" (parenthesized_expression "(((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400))" ( (binary_expression "((pbVar34->flags & 1) != 0) && ((pbVar34->flags & 0x402) != 0x400)" (parenthesized_expression "((pbVar34->flags & 1) != 0)" ( (binary_expression "(pbVar34->flags & 1) != 0" (parenthesized_expression "(pbVar34->flags & 1)" ( (binary_expression "pbVar34->flags & 1" (field_expression "pbVar34->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((pbVar34->flags & 0x402) != 0x400)" ( (binary_expression "(pbVar34->flags & 0x402) != 0x400" (parenthesized_expression "(pbVar34->flags & 0x402)" ( (binary_expression "pbVar34->flags & 0x402" (field_expression "pbVar34->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(pbVar34->size != 0)" ( (binary_expression "pbVar34->size != 0" (field_expression "pbVar34->size" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n            iVar23 = uVar46 * 2;\n            uVar46 = uVar46 + 1;\n            __ptr[iVar23] = (int)pbVar34;\n            (__ptr + iVar23)[1] = 0;\n          }" { (expression_statement "iVar23 = uVar46 * 2;" (assignment_expression "iVar23 = uVar46 * 2" identifier = (binary_expression "uVar46 * 2" identifier * number_literal)) ;) (expression_statement "uVar46 = uVar46 + 1;" (assignment_expression "uVar46 = uVar46 + 1" identifier = (binary_expression "uVar46 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[iVar23] = (int)pbVar34;" (assignment_expression "__ptr[iVar23] = (int)pbVar34" (subscript_expression "__ptr[iVar23]" identifier [ identifier ]) = (cast_expression "(int)pbVar34" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(__ptr + iVar23)[1] = 0;" (assignment_expression "(__ptr + iVar23)[1] = 0" (subscript_expression "(__ptr + iVar23)[1]" (parenthesized_expression "(__ptr + iVar23)" ( (binary_expression "__ptr + iVar23" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "pbVar34 = pbVar34->next;" (assignment_expression "pbVar34 = pbVar34->next" identifier = (field_expression "pbVar34->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pbVar34 != (bfd_section *)0x0)" ( (binary_expression "pbVar34 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (1 < uVar46) {\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" if (parenthesized_expression "(1 < uVar46)" ( (binary_expression "1 < uVar46" number_literal < identifier) )) (compound_statement "{\n          qsort(__ptr,uVar46,8,sort_sections_by_lma);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (lang_statement_union *)0x0;\n          piVar60 = __ptr;\n          do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);\n          qsort(__ptr,uVar46,8,sort_sections_by_vma);\n          puVar1 = (undefined4 *)*__ptr;\n          plVar47 = (lang_statement_union *)puVar1[7];\n          uVar39 = 1;\n          uVar50 = (uint)plVar47;\n          do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);\n          uVar50 = 0;\n          pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n          while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(__ptr);\n          for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" { (expression_statement "qsort(__ptr,uVar46,8,sort_sections_by_lma);" (call_expression "qsort(__ptr,uVar46,8,sort_sections_by_lma)" identifier (argument_list "(__ptr,uVar46,8,sort_sections_by_lma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (lang_statement_union *)0x0;" (assignment_expression "local_50 = (lang_statement_union *)0x0" identifier = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar60 = __ptr;" (assignment_expression "piVar60 = __ptr" identifier = identifier) ;) (do_statement "do {\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          } while (__ptr + uVar46 * 2 != piVar60);" do (compound_statement "{\n            puVar15 = (undefined4 *)*piVar60;\n            plVar47 = local_50;\n            puVar1 = local_48;\n            uVar50 = local_44;\n            if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }\n            local_44 = uVar50;\n            local_48 = puVar1;\n            local_50 = plVar47;\n            piVar60 = piVar60 + 2;\n          }" { (expression_statement "puVar15 = (undefined4 *)*piVar60;" (assignment_expression "puVar15 = (undefined4 *)*piVar60" identifier = (cast_expression "(undefined4 *)*piVar60" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar60" * identifier))) ;) (expression_statement "plVar47 = local_50;" (assignment_expression "plVar47 = local_50" identifier = identifier) ;) (expression_statement "puVar1 = local_48;" (assignment_expression "puVar1 = local_48" identifier = identifier) ;) (expression_statement "uVar50 = local_44;" (assignment_expression "uVar50 = local_44" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar15 + 5) & 2) != 0) {\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar15 + 5) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 2)" ( (binary_expression "*(byte *)(puVar15 + 5) & 2" (pointer_expression "*(byte *)(puVar15 + 5)" * (cast_expression "(byte *)(puVar15 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 5)" ( (binary_expression "puVar15 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar50 = puVar15[8];\n              puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;\n              plVar47 = (lang_statement_union *)puVar15;\n              if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }\n            }" { (expression_statement "uVar50 = puVar15[8];" (assignment_expression "uVar50 = puVar15[8]" identifier = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))\n              ;" (assignment_expression "puVar1 = (undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))" identifier = (cast_expression "(undefined4 *)((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f)))" ( (binary_expression "(uVar50 - 1) + ((uint)puVar15[9] >> ((byte)opb_shift & 0x1f))" (parenthesized_expression "(uVar50 - 1)" ( (binary_expression "uVar50 - 1" identifier - number_literal) )) + (parenthesized_expression "((uint)puVar15[9] >> ((byte)opb_shift & 0x1f))" ( (binary_expression "(uint)puVar15[9] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar15[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "plVar47 = (lang_statement_union *)puVar15;" (assignment_expression "plVar47 = (lang_statement_union *)puVar15" identifier = (cast_expression "(lang_statement_union *)puVar15" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))) {\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }" if (parenthesized_expression "((local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44))))" ( (binary_expression "(local_50 != (lang_statement_union *)0x0) &&\n                 ((uVar50 <= local_48 || (local_48 < local_44)))" (parenthesized_expression "(local_50 != (lang_statement_union *)0x0)" ( (binary_expression "local_50 != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar50 <= local_48 || (local_48 < local_44)))" ( (parenthesized_expression "(uVar50 <= local_48 || (local_48 < local_44))" ( (binary_expression "uVar50 <= local_48 || (local_48 < local_44)" (binary_expression "uVar50 <= local_48" identifier <= identifier) || (parenthesized_expression "(local_48 < local_44)" ( (binary_expression "local_48 < local_44" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar61 = *(undefined4 *)local_50;\n                uVar31 = *puVar15;\n                pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);\n                piVar60[1] = 1;\n              }" { (expression_statement "uVar61 = *(undefined4 *)local_50;" (assignment_expression "uVar61 = *(undefined4 *)local_50" identifier = (pointer_expression "*(undefined4 *)local_50" * (cast_expression "(undefined4 *)local_50" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "uVar31 = *puVar15;" (assignment_expression "uVar31 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5)" identifier (argument_list "(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5)" ( number_literal , (string_literal ""%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48);" (call_expression "einfo(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48)" identifier (argument_list "(pcVar24,uVar31,uVar50,puVar1,uVar61,local_44,local_48)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar60[1] = 1;" (assignment_expression "piVar60[1] = 1" (subscript_expression "piVar60[1]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_44 = uVar50;" (assignment_expression "local_44 = uVar50" identifier = identifier) ;) (expression_statement "local_48 = puVar1;" (assignment_expression "local_48 = puVar1" identifier = identifier) ;) (expression_statement "local_50 = plVar47;" (assignment_expression "local_50 = plVar47" identifier = identifier) ;) (expression_statement "piVar60 = piVar60 + 2;" (assignment_expression "piVar60 = piVar60 + 2" identifier = (binary_expression "piVar60 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(__ptr + uVar46 * 2 != piVar60)" ( (binary_expression "__ptr + uVar46 * 2 != piVar60" (binary_expression "__ptr + uVar46 * 2" identifier + (binary_expression "uVar46 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "qsort(__ptr,uVar46,8,sort_sections_by_vma);" (call_expression "qsort(__ptr,uVar46,8,sort_sections_by_vma)" identifier (argument_list "(__ptr,uVar46,8,sort_sections_by_vma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar1 = (undefined4 *)*__ptr;" (assignment_expression "puVar1 = (undefined4 *)*__ptr" identifier = (cast_expression "(undefined4 *)*__ptr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*__ptr" * identifier))) ;) (expression_statement "plVar47 = (lang_statement_union *)puVar1[7];" (assignment_expression "plVar47 = (lang_statement_union *)puVar1[7]" identifier = (cast_expression "(lang_statement_union *)puVar1[7]" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar39 = 1;" (assignment_expression "uVar39 = 1" identifier = number_literal) ;) (expression_statement "uVar50 = (uint)plVar47;" (assignment_expression "uVar50 = (uint)plVar47" identifier = (cast_expression "(uint)plVar47" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (do_statement "do {\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          } while (uVar39 != uVar46);" do (compound_statement "{\n            iVar23 = uVar39 * 2;\n            if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;\n            uVar39 = uVar39 + 1;\n            uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);\n          }" { (expression_statement "iVar23 = uVar39 * 2;" (assignment_expression "iVar23 = uVar39 * 2" identifier = (binary_expression "uVar39 * 2" identifier * number_literal)) ;) (if_statement "if (*(uint *)(__ptr[iVar23] + 0x1c) == uVar50) goto LAB_000298a2;" if (parenthesized_expression "(*(uint *)(__ptr[iVar23] + 0x1c) == uVar50)" ( (binary_expression "*(uint *)(__ptr[iVar23] + 0x1c) == uVar50" (pointer_expression "*(uint *)(__ptr[iVar23] + 0x1c)" * (cast_expression "(uint *)(__ptr[iVar23] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr[iVar23] + 0x1c)" ( (binary_expression "__ptr[iVar23] + 0x1c" (subscript_expression "__ptr[iVar23]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_000298a2;" goto statement_identifier ;)) (expression_statement "uVar39 = uVar39 + 1;" (assignment_expression "uVar39 = uVar39 + 1" identifier = (binary_expression "uVar39 + 1" identifier + number_literal)) ;) (expression_statement "uVar50 = *(uint *)(__ptr[iVar23] + 0x1c);" (assignment_expression "uVar50 = *(uint *)(__ptr[iVar23] + 0x1c)" identifier = (pointer_expression "*(uint *)(__ptr[iVar23] + 0x1c)" * (cast_expression "(uint *)(__ptr[iVar23] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr[iVar23] + 0x1c)" ( (binary_expression "__ptr[iVar23] + 0x1c" (subscript_expression "__ptr[iVar23]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar39 != uVar46)" ( (binary_expression "uVar39 != uVar46" identifier != identifier) )) ;) (expression_statement "uVar50 = 0;" (assignment_expression "uVar50 = 0" identifier = number_literal) ;) (expression_statement "pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));" (assignment_expression "pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" identifier = (cast_expression "(void *)(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" ( (binary_expression "((int)&plVar47->header - 1U) +\n                           ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f))" (parenthesized_expression "((int)&plVar47->header - 1U)" ( (binary_expression "(int)&plVar47->header - 1U" (cast_expression "(int)&plVar47->header" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar47->header" & (field_expression "plVar47->header" identifier -> field_identifier))) - number_literal) )) + (parenthesized_expression "((uint)puVar1[9] >> ((byte)opb_shift & 0x1f))" ( (binary_expression "(uint)puVar1[9] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (while_statement "while (local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46) {\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }" while (parenthesized_expression "(local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46)" ( (comma_expression "local_48 = puVar1, local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46" (assignment_expression "local_48 = puVar1" identifier = identifier) , (comma_expression "local_4c = pvVar2, local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46" (assignment_expression "local_4c = pvVar2" identifier = identifier) , (comma_expression "local_50 = plVar47, uVar50 = uVar50 + 1,\n                uVar50 != uVar46" (assignment_expression "local_50 = plVar47" identifier = identifier) , (comma_expression "uVar50 = uVar50 + 1,\n                uVar50 != uVar46" (assignment_expression "uVar50 = uVar50 + 1" identifier = (binary_expression "uVar50 + 1" identifier + number_literal)) , (binary_expression "uVar50 != uVar46" identifier != identifier))))) )) (compound_statement "{\n            puVar1 = (undefined4 *)__ptr[uVar50 * 2];\n            plVar47 = (lang_statement_union *)puVar1[7];\n            pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));\n            if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }\n          }" { (expression_statement "puVar1 = (undefined4 *)__ptr[uVar50 * 2];" (assignment_expression "puVar1 = (undefined4 *)__ptr[uVar50 * 2]" identifier = (cast_expression "(undefined4 *)__ptr[uVar50 * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[uVar50 * 2]" identifier [ (binary_expression "uVar50 * 2" identifier * number_literal) ]))) ;) (expression_statement "plVar47 = (lang_statement_union *)puVar1[7];" (assignment_expression "plVar47 = (lang_statement_union *)puVar1[7]" identifier = (cast_expression "(lang_statement_union *)puVar1[7]" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[7]" identifier [ number_literal ]))) ;) (expression_statement "pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)));" (assignment_expression "pvVar2 = (void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" identifier = (cast_expression "(void *)(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f)))" ( (binary_expression "((int)&plVar47->header - 1U) +\n                             ((uint)puVar1[9] >> ((byte)opb_shift & 0x1f))" (parenthesized_expression "((int)&plVar47->header - 1U)" ( (binary_expression "(int)&plVar47->header - 1U" (cast_expression "(int)&plVar47->header" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&plVar47->header" & (field_expression "plVar47->header" identifier -> field_identifier))) - number_literal) )) + (parenthesized_expression "((uint)puVar1[9] >> ((byte)opb_shift & 0x1f))" ( (binary_expression "(uint)puVar1[9] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar1[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar1[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)opb_shift & 0x1f)" ( (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (if_statement "if ((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))) {\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }" if (parenthesized_expression "((__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50))))" ( (binary_expression "(__ptr[uVar50 * 2 + 1] == 0) && ((plVar47 <= local_4c || (local_4c < local_50)))" (parenthesized_expression "(__ptr[uVar50 * 2 + 1] == 0)" ( (binary_expression "__ptr[uVar50 * 2 + 1] == 0" (subscript_expression "__ptr[uVar50 * 2 + 1]" identifier [ (binary_expression "uVar50 * 2 + 1" (binary_expression "uVar50 * 2" identifier * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((plVar47 <= local_4c || (local_4c < local_50)))" ( (parenthesized_expression "(plVar47 <= local_4c || (local_4c < local_50))" ( (binary_expression "plVar47 <= local_4c || (local_4c < local_50)" (binary_expression "plVar47 <= local_4c" identifier <= identifier) || (parenthesized_expression "(local_4c < local_50)" ( (binary_expression "local_4c < local_50" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar61 = *puVar1;\n              uVar31 = *local_48;\n              pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);\n            }" { (expression_statement "uVar61 = *puVar1;" (assignment_expression "uVar61 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "uVar31 = *local_48;" (assignment_expression "uVar31 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5)" identifier (argument_list "(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5)" ( number_literal , (string_literal ""%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c);" (call_expression "einfo(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c)" identifier (argument_list "(pcVar24,uVar61,plVar47,pvVar2,uVar31,local_50,local_4c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_000298a2:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (for_statement "for (pmVar62 = lang_memory_region_list; prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0; pmVar62 = pmVar62->next) {\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }" for ( (assignment_expression "pmVar62 = lang_memory_region_list" identifier = identifier) ; (comma_expression "prVar16 = require_defined_symbol_list,\n              pmVar62 != (lang_memory_region_type *)0x0" (assignment_expression "prVar16 = require_defined_symbol_list" identifier = identifier) , (binary_expression "pmVar62 != (lang_memory_region_type *)0x0" identifier != (cast_expression "(lang_memory_region_type *)0x0" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "pmVar62 = pmVar62->next" identifier = (field_expression "pmVar62->next" identifier -> field_identifier)) ) (compound_statement "{\n            if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }\n          }" { (if_statement "if (pmVar62->had_full_message != 0) {\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }" if (parenthesized_expression "(pmVar62->had_full_message != 0)" ( (binary_expression "pmVar62->had_full_message != 0" (field_expression "pmVar62->had_full_message" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              pcVar24 = (pmVar62->name_list).name;\n              iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);\n              pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);\n              einfo(pcVar28,pcVar24,iVar23);\n            }" { (expression_statement "pcVar24 = (pmVar62->name_list).name;" (assignment_expression "pcVar24 = (pmVar62->name_list).name" identifier = (field_expression "(pmVar62->name_list).name" (parenthesized_expression "(pmVar62->name_list)" ( (field_expression "pmVar62->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin);" (assignment_expression "iVar23 = pmVar62->current - (pmVar62->length + pmVar62->origin)" identifier = (binary_expression "pmVar62->current - (pmVar62->length + pmVar62->origin)" (field_expression "pmVar62->current" identifier -> field_identifier) - (parenthesized_expression "(pmVar62->length + pmVar62->origin)" ( (binary_expression "pmVar62->length + pmVar62->origin" (field_expression "pmVar62->length" identifier -> field_identifier) + (field_expression "pmVar62->origin" identifier -> field_identifier)) )))) ;) (expression_statement "pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5);" (assignment_expression "pcVar28 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5)" identifier = (cast_expression "(char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar23,5)" ( number_literal , (string_literal ""%X%P: region `%s\' overflowed by %lu byte\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""%X%P: region `%s\' overflowed by %lu bytes\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24,iVar23);" (call_expression "einfo(pcVar28,pcVar24,iVar23)" identifier (argument_list "(pcVar28,pcVar24,iVar23)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x00028c93;" goto statement_identifier ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "prVar16 = require_defined_symbol_list;" (assignment_expression "prVar16 = require_defined_symbol_list" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x00028c93:\n  for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }" statement_identifier : (for_statement "for (; prVar16 != (require_defined_symbol *)0x0; prVar16 = prVar16->next) {\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }" for ( ; (binary_expression "prVar16 != (require_defined_symbol *)0x0" identifier != (cast_expression "(require_defined_symbol *)0x0" ( (type_descriptor "require_defined_symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "prVar16 = prVar16->next" identifier = (field_expression "prVar16->next" identifier -> field_identifier)) ) (compound_statement "{\n    iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);\n    if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }\n  }" { (expression_statement "iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1);" (assignment_expression "iVar23 = bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,prVar16->name,0,0,1)" identifier (argument_list "(link_info.hash,prVar16->name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "prVar16->name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))) {\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }" if (parenthesized_expression "((iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U)))" ( (binary_expression "(iVar23 == 0) || (1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))" (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar23 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar23 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar23 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar23 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar23 + 0xc) - 3U" (pointer_expression "*(char *)(iVar23 + 0xc)" * (cast_expression "(char *)(iVar23 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc)" ( (binary_expression "iVar23 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      pcVar24 = prVar16->name;\n      pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar28,pcVar24);\n    }" { (expression_statement "pcVar24 = prVar16->name;" (assignment_expression "pcVar24 = prVar16->name" identifier = (field_expression "prVar16->name" identifier -> field_identifier)) ;) (expression_statement "pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier (argument_list "(0,"%X%P: required symbol `%s\' not defined\n",5)" ( number_literal , (string_literal ""%X%P: required symbol `%s\' not defined\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar23 = entry_from_cmdline;" (assignment_expression "iVar23 = entry_from_cmdline" identifier = identifier) ;) (if_statement "if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar23 = 1;\n  }" if (parenthesized_expression "(((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3))" ( (binary_expression "((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)" (parenthesized_expression "((link_info._0_1_ & 0x43) != 2)" ( (binary_expression "(link_info._0_1_ & 0x43) != 2" (parenthesized_expression "(link_info._0_1_ & 0x43)" ( (binary_expression "link_info._0_1_ & 0x43" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((link_info._0_1_ & 3) != 3)" ( (binary_expression "(link_info._0_1_ & 3) != 3" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar23 = 1;\n  }" { (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) })) (if_statement "if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar24);\n  }" if (parenthesized_expression "(((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0))" ( (binary_expression "((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)" (parenthesized_expression "((link_info._0_1_ & 0x43) == 0x42)" ( (binary_expression "(link_info._0_1_ & 0x43) == 0x42" (parenthesized_expression "(link_info._0_1_ & 0x43)" ( (binary_expression "link_info._0_1_ & 0x43" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(entry_from_cmdline == 0 && undef_from_cmdline == 0)" ( (binary_expression "entry_from_cmdline == 0 && undef_from_cmdline == 0" (binary_expression "entry_from_cmdline == 0" identifier == number_literal) && (binary_expression "undef_from_cmdline == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar24);\n  }" { (expression_statement "pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5)" identifier (argument_list "(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5)" ( number_literal , (string_literal ""%F%P: gc-sections requires either an entry or an undefined symbol\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24);" (call_expression "einfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) })) (if_statement "if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar23 = 0;\n  }" if (parenthesized_expression "(entry_symbol.name == (char *)0x0)" ( (binary_expression "entry_symbol.name == (char *)0x0" (field_expression "entry_symbol.name" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    entry_symbol.name = entry_symbol_default;\n    iVar23 = 0;\n  }" { (expression_statement "entry_symbol.name = entry_symbol_default;" (assignment_expression "entry_symbol.name = entry_symbol_default" (field_expression "entry_symbol.name" identifier . field_identifier) = identifier) ;) (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) })) (expression_statement "iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);" (assignment_expression "iVar38 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1)" identifier (argument_list "(link_info.hash,entry_symbol.name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "entry_symbol.name" identifier . field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)) {\n    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);\n    if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" if (parenthesized_expression "((iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar38 != 0) && ((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar38 != 0)" ( (binary_expression "iVar38 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar38 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar38 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar38 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar38 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar38 + 0xc) - 3U" (pointer_expression "*(char *)(iVar38 + 0xc)" * (cast_expression "(char *)(iVar38 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0xc)" ( (binary_expression "iVar38 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);\n    if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" { (expression_statement "iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c);" (assignment_expression "iVar27 = *(int *)(*(int *)(iVar38 + 0x14) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar38 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar38 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar38 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar38 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar38 + 0x14)" * (cast_expression "(int *)(iVar38 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0x14)" ( (binary_expression "iVar38 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar27 != 0) {\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));\n      if (iVar23 != 0) {\n        return;\n      }\n      pcVar24 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" { (expression_statement "iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c));" (assignment_expression "iVar23 = bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c))" identifier = (call_expression "bfd_set_start_address\n                         (link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c))" identifier (argument_list "(link_info.output_bfd,\n                          *(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c))" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (binary_expression "*(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18) +\n                          *(int *)(iVar27 + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar38 + 0x14) + 0x38) + *(int *)(iVar38 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar38 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar38 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar38 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar38 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar38 + 0x14)" * (cast_expression "(int *)(iVar38 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0x14)" ( (binary_expression "iVar38 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar38 + 0x18)" * (cast_expression "(int *)(iVar38 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0x18)" ( (binary_expression "iVar38 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar27 + 0x1c)" * (cast_expression "(int *)(iVar27 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x1c)" ( (binary_expression "iVar27 + 0x1c" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar23 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar24 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar24 = "%F%P: %s: can\'t set start address\n"" identifier = (string_literal ""%F%P: %s: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000290ef;" goto statement_identifier ;) })) })) (expression_statement "uVar61 = bfd_scan_vma(entry_symbol.name,&power,0);" (assignment_expression "uVar61 = bfd_scan_vma(entry_symbol.name,&power,0)" identifier = (call_expression "bfd_scan_vma(entry_symbol.name,&power,0)" identifier (argument_list "(entry_symbol.name,&power,0)" ( (field_expression "entry_symbol.name" identifier . field_identifier) , (pointer_expression "&power" & identifier) , number_literal )))) ;) (if_statement "if (*(char *)power != '\0') {\n    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar24 = entry_symbol.name;\n    if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }\n    uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }\n  }" if (parenthesized_expression "(*(char *)power != '\0')" ( (binary_expression "*(char *)power != '\0'" (pointer_expression "*(char *)power" * (cast_expression "(char *)power" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar24 = entry_symbol.name;\n    if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }\n    uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }\n  }" { (expression_statement "iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section);" (assignment_expression "iVar38 = bfd_get_section_by_name(link_info.output_bfd,entry_section)" identifier = (call_expression "bfd_get_section_by_name(link_info.output_bfd,entry_section)" identifier (argument_list "(link_info.output_bfd,entry_section)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (expression_statement "pcVar24 = entry_symbol.name;" (assignment_expression "pcVar24 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;) (if_statement "if (iVar38 == 0) {\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }" if (parenthesized_expression "(iVar38 == 0)" ( (binary_expression "iVar38 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar23 == 0) {\n        return;\n      }\n      pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      pcVar28 = entry_symbol.name;\n      pcVar24 = (char *)dcgettext(0,pcVar24,5);\n      einfo(pcVar24,pcVar28);\n      return;\n    }" { (if_statement "if (iVar23 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar24 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" identifier = (string_literal ""%P: warning: cannot find entry symbol %s; not setting start address\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000290ef:\n      pcVar28 = entry_symbol.name;" statement_identifier : (expression_statement "pcVar28 = entry_symbol.name;" (assignment_expression "pcVar28 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;)) (expression_statement "pcVar24 = (char *)dcgettext(0,pcVar24,5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,pcVar24,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar24,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar24,5)" identifier (argument_list "(0,pcVar24,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar24,pcVar28);" (call_expression "einfo(pcVar24,pcVar28)" identifier (argument_list "(pcVar24,pcVar28)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar61 = *(undefined4 *)(iVar38 + 0x1c);" (assignment_expression "uVar61 = *(undefined4 *)(iVar38 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar38 + 0x1c)" * (cast_expression "(undefined4 *)(iVar38 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0x1c)" ( (binary_expression "iVar38 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar23 != 0) {\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar28,pcVar24,uVar61);\n      uVar61 = *(undefined4 *)(iVar38 + 0x1c);\n    }" { (expression_statement "pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 )" identifier = (cast_expression "(char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 )" identifier (argument_list "(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 )" ( number_literal , (string_literal ""%P: warning: cannot find entry symbol %s; defaulting to %V\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24,uVar61);" (call_expression "einfo(pcVar28,pcVar24,uVar61)" identifier (argument_list "(pcVar28,pcVar24,uVar61)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar61 = *(undefined4 *)(iVar38 + 0x1c);" (assignment_expression "uVar61 = *(undefined4 *)(iVar38 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar38 + 0x1c)" * (cast_expression "(undefined4 *)(iVar38 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar38 + 0x1c)" ( (binary_expression "iVar38 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61);" (assignment_expression "iVar23 = bfd_set_start_address(link_info.output_bfd,uVar61)" identifier = (call_expression "bfd_set_start_address(link_info.output_bfd,uVar61)" identifier (argument_list "(link_info.output_bfd,uVar61)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar23 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar23 != 0)" ( (binary_expression "iVar23 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: can\'t set start address\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier (argument_list "(0,"%F%P: can\'t set start address\n",5)" ( number_literal , (string_literal ""%F%P: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24);" (call_expression "einfo(pcVar24)" identifier (argument_list "(pcVar24)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x00028eb3:\n  plVar47 = (plVar47->wild_statement).children.head;" statement_identifier : (expression_statement "plVar47 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar47 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (goto_statement "goto joined_r0x0002800a;" goto statement_identifier ;) (labeled_statement "LAB_000283a0:\n  pcVar24 = (pmVar62->name_list).name;" statement_identifier : (expression_statement "pcVar24 = (pmVar62->name_list).name;" (assignment_expression "pcVar24 = (pmVar62->name_list).name" identifier = (field_expression "(pmVar62->name_list).name" (parenthesized_expression "(pmVar62->name_list)" ( (field_expression "pmVar62->name_list" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "pcVar28 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid length for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid length for memory region %s\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar28,pcVar24);" (call_expression "einfo(pcVar28,pcVar24)" identifier (argument_list "(pcVar28,pcVar24)" ( identifier , identifier ))) ;) (expression_statement "pmVar62 = pmVar62->next;" (assignment_expression "pmVar62 = pmVar62->next" identifier = (field_expression "pmVar62->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00028237;" goto statement_identifier ;) (labeled_statement "code_r0x000286ac:\n  (*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);" statement_identifier : (expression_statement "(*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info);" (call_expression "(*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar52,&link_info)" (parenthesized_expression "(*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms)" ( (pointer_expression "*((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms" * (field_expression "((plVar47->input_statement).the_bfd)->xvec->_bfd_link_just_syms" (field_expression "((plVar47->input_statement).the_bfd)->xvec" (parenthesized_expression "((plVar47->input_statement).the_bfd)" ( (field_expression "(plVar47->input_statement).the_bfd" (parenthesized_expression "(plVar47->input_statement)" ( (field_expression "plVar47->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar52,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) ))) ;)) (expression_statement "pbVar52 = pbVar52->next;" (assignment_expression "pbVar52 = pbVar52->next" identifier = (field_expression "pbVar52->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00028684;" goto statement_identifier ;) (labeled_statement "code_r0x00028b27:\n  plVar55 = (plVar47->wild_statement).children.head;" statement_identifier : (expression_statement "plVar55 = (plVar47->wild_statement).children.head;" (assignment_expression "plVar55 = (plVar47->wild_statement).children.head" identifier = (field_expression "(plVar47->wild_statement).children.head" (field_expression "(plVar47->wild_statement).children" (parenthesized_expression "(plVar47->wild_statement)" ( (field_expression "plVar47->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "pcVar24 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier (argument_list "(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" ( number_literal , (string_literal ""%X%P: section `%s\' assigned to non-existent phdr `%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar24,plVar55,pbVar9);" (call_expression "einfo(pcVar24,plVar55,pbVar9)" identifier (argument_list "(pcVar24,plVar55,pbVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "paVar44 = (asection *)paVar44->name;" (assignment_expression "paVar44 = (asection *)paVar44->name" identifier = (cast_expression "(asection *)paVar44->name" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar44->name" identifier -> field_identifier))) ;) (expression_statement "has_relro_section = extraout_ECX_00;" (assignment_expression "has_relro_section = extraout_ECX_00" identifier = identifier) ;) (goto_statement "goto joined_r0x00028aeb;" goto statement_identifier ;) })))
(translation_unit "void FUN_00027e10(void)\n\n{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}\n\n" (function_definition "void FUN_00027e10(void)\n\n{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" primitive_type (function_declarator "FUN_00027e10(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined4 *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "int *piVar26;" primitive_type (pointer_declarator "*piVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "byte *pbVar30;" type_identifier (pointer_declarator "*pbVar30" * identifier) ;) (declaration "bool bVar31;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "byte bVar33;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "void *local_4c;" primitive_type (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined4 *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "char *local_20 [3];" primitive_type (pointer_declarator "*local_20 [3]" * (array_declarator "local_20 [3]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar33 = 0;" (assignment_expression "bVar33 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x27e19;" (assignment_expression "uStack_14 = 0x27e19" identifier = number_literal) ;) (if_statement "if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }" if (parenthesized_expression "(DAT_00091ca0 != 0)" ( (binary_expression "DAT_00091ca0 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001e950();\n  }" { (expression_statement "FUN_0001e950();" (call_expression "FUN_0001e950()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" identifier = identifier) ;) (expression_statement "FUN_000216f0(FUN_00024300,DAT_00091848);" (call_expression "FUN_000216f0(FUN_00024300,DAT_00091848)" identifier (argument_list "(FUN_00024300,DAT_00091848)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001f200();" (call_expression "FUN_0001f200()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00030060();" (call_expression "FUN_00030060()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }" for ( (assignment_expression "puVar13 = DAT_00091794" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n    FUN_0001e720();\n  }" { (expression_statement "FUN_0001e720();" (call_expression "FUN_0001e720()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar5 = bfd_section_already_linked_table_init();" (assignment_expression "iVar5 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can not create hash table: %E\n",5)" identifier (argument_list "(0,"%F%P: can not create hash table: %E\n",5)" ( number_literal , (string_literal ""%F%P: can not create hash table: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" identifier = identifier) ;) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = DAT_00091bc8;" (assignment_expression "piVar27 = DAT_00091bc8" identifier = identifier) ;) (expression_statement "piVar23 = DAT_00091bc4;" (assignment_expression "piVar23 = DAT_00091bc4" identifier = identifier) ;) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00091c20._1_1_ & 2) != 0)" ( (binary_expression "(DAT_00091c20._1_1_ & 2) != 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 2)" ( (binary_expression "DAT_00091c20._1_1_ & 2" (field_expression "DAT_00091c20._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar5 = *(int *)PTR_DAT_00091358;" (assignment_expression "iVar5 = *(int *)PTR_DAT_00091358" identifier = (pointer_expression "*(int *)PTR_DAT_00091358" * (cast_expression "(int *)PTR_DAT_00091358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar29 = *(int **)(PTR_DAT_00091358 + 4);" (assignment_expression "piVar29 = *(int **)(PTR_DAT_00091358 + 4)" identifier = (pointer_expression "*(int **)(PTR_DAT_00091358 + 4)" * (cast_expression "(int **)(PTR_DAT_00091358 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00091358 + 4)" ( (binary_expression "PTR_DAT_00091358 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = FUN_000351f0();" (assignment_expression "iVar9 = FUN_000351f0()" identifier = (call_expression "FUN_000351f0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" { (expression_statement "uVar6 = FUN_00034b60();" (assignment_expression "uVar6 = FUN_00034b60()" identifier = (call_expression "FUN_00034b60()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" identifier (argument_list "(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" ( number_literal , (string_literal ""%F%P: %s: plugin reported error after all symbols read\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" identifier = identifier) ;) (if_statement "if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(int *)PTR_DAT_00091358 != iVar5)" ( (binary_expression "*(int *)PTR_DAT_00091358 != iVar5" (pointer_expression "*(int *)PTR_DAT_00091358" * (cast_expression "(int *)PTR_DAT_00091358" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar14 = *(int **)(puVar15 + 4);" (assignment_expression "piVar14 = *(int **)(puVar15 + 4)" identifier = (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *piVar29;" (assignment_expression "iVar5 = *piVar29" identifier = (pointer_expression "*piVar29" * identifier)) ;) (expression_statement "*(int **)(puVar15 + 4) = piVar29;" (assignment_expression "*(int **)(puVar15 + 4) = piVar29" (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar29 = 0;" (assignment_expression "*piVar29 = 0" (pointer_expression "*piVar29" * identifier) = number_literal) ;) (if_statement "if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_0009179c != piVar24)" ( (binary_expression "DAT_0009179c != piVar24" identifier != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = (int *)*piVar26;" (assignment_expression "piVar24 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (if_statement "if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_00091bc4 != piVar23)" ( (binary_expression "DAT_00091bc4 != piVar23" identifier != identifier) )) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar23 = DAT_00091bc8;" (assignment_expression "piVar23 = DAT_00091bc8" identifier = identifier) ;) (expression_statement "iVar9 = *piVar27;" (assignment_expression "iVar9 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "DAT_00091bc8 = piVar27;" (assignment_expression "DAT_00091bc8 = piVar27" identifier = identifier) ;) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" * identifier) = number_literal) ;) (expression_statement "piVar26 = DAT_0009179c;" (assignment_expression "piVar26 = DAT_0009179c" identifier = identifier) ;) (expression_statement "piVar27 = DAT_00091bc4;" (assignment_expression "piVar27 = DAT_00091bc4" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" for ( ; (comma_expression "DAT_000917e0 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_000917e0 = piVar27" identifier = identifier) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "piVar26 = (int *)piVar26[6]" identifier = (cast_expression "(int *)piVar26[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[6]" identifier [ number_literal ]))) ) (compound_statement "{\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" if (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0)" ( (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" * (cast_expression "(byte *)((int)piVar26 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar26 + 0x25)" ( (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;" if (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40)" ( (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x40" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" * (cast_expression "(byte *)((int)piVar26 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar26 + 0x25)" ( (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00029491;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }" if (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0))" ( (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)" (parenthesized_expression "(piVar26[4] != 0)" ( (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(piVar26[4] + 0x88) == 0)" ( (binary_expression "*(int *)(piVar26[4] + 0x88) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x88)" * (cast_expression "(int *)(piVar26[4] + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[4] + 0x88)" ( (binary_expression "piVar26[4] + 0x88" (subscript_expression "piVar26[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_000917e0 = piVar26;\n        }" { (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar27 = DAT_000917e0;" (assignment_expression "piVar27 = DAT_000917e0" identifier = identifier) ;) })) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) (if_statement "if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" if (parenthesized_expression "(DAT_000917e0 == (int *)0x0)" ( (binary_expression "DAT_000917e0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) })) (labeled_statement "LAB_00029491:\n      DAT_000917e0 = piVar26;" statement_identifier : (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" identifier = identifier) ;)) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" identifier = identifier) ;) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" identifier = identifier) ;) (expression_statement "*piVar14 = *DAT_000917e0;" (assignment_expression "*piVar14 = *DAT_000917e0" (pointer_expression "*piVar14" * identifier) = (pointer_expression "*DAT_000917e0" * identifier)) ;) (expression_statement "*piVar26 = iVar5;" (assignment_expression "*piVar26 = iVar5" (pointer_expression "*piVar26" * identifier) = identifier) ;) (if_statement "if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }" if (parenthesized_expression "(piVar26 == *(int **)(puVar15 + 4))" ( (binary_expression "piVar26 == *(int **)(puVar15 + 4)" identifier == (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int **)(puVar15 + 4) = piVar14;\n      }" { (expression_statement "*(int **)(puVar15 + 4) = piVar14;" (assignment_expression "*(int **)(puVar15 + 4) = piVar14" (pointer_expression "*(int **)(puVar15 + 4)" * (cast_expression "(int **)(puVar15 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + 4)" ( (binary_expression "puVar15 + 4" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "*piVar23 = piVar26[7];" (assignment_expression "*piVar23 = piVar26[7]" (pointer_expression "*piVar23" * identifier) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "piVar26[7] = iVar9;" (assignment_expression "piVar26[7] = iVar9" (subscript_expression "piVar26[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = DAT_000917a0;" (assignment_expression "piVar27 = DAT_000917a0" identifier = identifier) ;) (if_statement "if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }" if (parenthesized_expression "(DAT_00091bc8 == piVar26 + 7)" ( (binary_expression "DAT_00091bc8 == piVar26 + 7" identifier == (binary_expression "piVar26 + 7" identifier + number_literal)) )) (compound_statement "{\n        DAT_00091bc8 = piVar23;\n      }" { (expression_statement "DAT_00091bc8 = piVar23;" (assignment_expression "DAT_00091bc8 = piVar23" identifier = identifier) ;) })) (if_statement "if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" if (parenthesized_expression "(piVar26[2] == 0)" ( (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }" { (expression_statement "*piVar29 = (int)DAT_0009179c;" (assignment_expression "*piVar29 = (int)DAT_0009179c" (pointer_expression "*piVar29" * identifier) = (cast_expression "(int)DAT_0009179c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_0009179c = piVar24;" (assignment_expression "DAT_0009179c = piVar24" identifier = identifier) ;) (if_statement "if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }" if (parenthesized_expression "((int **)piVar27 != &DAT_0009179c)" ( (binary_expression "(int **)piVar27 != &DAT_0009179c" (cast_expression "(int **)piVar27" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_0009179c" & identifier)) )) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" { (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) })) }) (else_clause "else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" else (compound_statement "{\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" { (expression_statement "*piVar29 = piVar26[6];" (assignment_expression "*piVar29 = piVar26[6]" (pointer_expression "*piVar29" * identifier) = (subscript_expression "piVar26[6]" identifier [ number_literal ])) ;) (expression_statement "piVar26[6] = (int)piVar24;" (assignment_expression "piVar26[6] = (int)piVar24" (subscript_expression "piVar26[6]" identifier [ number_literal ]) = (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }" if (parenthesized_expression "(piVar27 != piVar26 + 6)" ( (binary_expression "piVar27 != piVar26 + 6" identifier != (binary_expression "piVar26 + 6" identifier + number_literal)) )) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" { (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" identifier = identifier) ;) })) }))) (expression_statement "DAT_000917a0 = piVar29;" (assignment_expression "DAT_000917a0 = piVar29" identifier = identifier) ;) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" identifier = identifier) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(DAT_0009179c != piVar24)" ( (binary_expression "DAT_0009179c != piVar24" identifier != identifier) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar5 = *piVar26;" (assignment_expression "iVar5 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) ;) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (while_statement "while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" { (expression_statement "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);" (assignment_expression "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar5 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar8 = iVar9;\n        }" { (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" identifier = identifier) ;) })) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" if (parenthesized_expression "(DAT_00091bc4 != (int *)0x0)" ( (binary_expression "DAT_00091bc4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" { (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = DAT_00091bc4;" (assignment_expression "piVar26 = DAT_00091bc4" identifier = identifier) ;) (do_statement "do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);" do (compound_statement "{\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          }" { (while_statement "while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" while (parenthesized_expression "(piVar26[4] != iVar8)" ( (binary_expression "piVar26[4] != iVar8" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != identifier) )) (compound_statement "{\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" { (if_statement "if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }" if (parenthesized_expression "((piVar26[4] != 0) && (piVar26[6] != 0))" ( (binary_expression "(piVar26[4] != 0) && (piVar26[6] != 0)" (parenthesized_expression "(piVar26[4] != 0)" ( (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar26[6] != 0)" ( (binary_expression "piVar26[6] != 0" (subscript_expression "piVar26[6]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n                piVar23 = piVar26;\n              }" { (expression_statement "piVar23 = piVar26;" (assignment_expression "piVar23 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (if_statement "if (piVar26 == (int *)0x0) goto LAB_000295b0;" if (parenthesized_expression "(piVar26 == (int *)0x0)" ( (binary_expression "piVar26 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000295b0;" goto statement_identifier ;)) })) (expression_statement "iVar25 = piVar26[6];" (assignment_expression "iVar25 = piVar26[6]" identifier = (subscript_expression "piVar26[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" { (expression_statement "piVar24 = (int *)(iVar25 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar25 + 0x18)" identifier = (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar8 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar25 + 0x18)" identifier = (pointer_expression "*(int *)(iVar25 + 0x18)" * (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_000295f1;" goto statement_identifier ;) })) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" identifier = identifier) ;) }) while (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (labeled_statement "LAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" statement_identifier : (if_statement "if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" if (parenthesized_expression "(local_50 != (int *)0x0)" ( (binary_expression "local_50 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar24 = local_50;\n          }" { (expression_statement "piVar24 = local_50;" (assignment_expression "piVar24 = local_50" identifier = identifier) ;) }))) })) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" identifier = (binary_expression "piVar24 + 6" identifier + number_literal)) ;) (for_statement "for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" for ( (assignment_expression "iVar8 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ; (binary_expression "iVar8 != 0" identifier != number_literal) ; (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" identifier = (pointer_expression "*(int *)(iVar8 + 0x18)" * (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" { (if_statement "if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0))" ( (binary_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" (parenthesized_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)(iVar8 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x25) & 0x40)" ( (binary_expression "*(byte *)(iVar8 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar8 + 0x25)" * (cast_expression "(byte *)(iVar8 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x25)" ( (binary_expression "iVar8 + 0x25" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar8 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar8 + 0x10)" * (cast_expression "(int *)(iVar8 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x10)" ( (binary_expression "iVar8 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            iVar8 = *piVar24;\n            break;\n          }" { (expression_statement "iVar8 = *piVar24;" (assignment_expression "iVar8 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = (int *)(iVar8 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar8 + 0x18)" identifier = (cast_expression "(int *)(iVar8 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x18)" ( (binary_expression "iVar8 + 0x18" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);" statement_identifier : (expression_statement "local_50 = (int *)(iVar5 + 0x18);" (assignment_expression "local_50 = (int *)(iVar5 + 0x18)" identifier = (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) ;)) (if_statement "if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }" { (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar5 + 0x18) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x18) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = iVar9;" (assignment_expression "iVar5 = iVar9" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" else (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x18)" identifier = (pointer_expression "*(int *)(iVar5 + 0x18)" * (cast_expression "(int *)(iVar5 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" { (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" * (cast_expression "(int *)(iVar25 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" while (parenthesized_expression "(iVar9 == iVar28)" ( (binary_expression "iVar9 == iVar28" identifier == identifier) )) (compound_statement "{\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" { (expression_statement "local_50 = (int *)(iVar25 + 0x18);" (assignment_expression "local_50 = (int *)(iVar25 + 0x18)" identifier = (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) )))) ;) (expression_statement "iVar25 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar25 + 0x18)" identifier = (pointer_expression "*(int *)(iVar25 + 0x18)" * (cast_expression "(int *)(iVar25 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x18)" ( (binary_expression "iVar25 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" * (cast_expression "(int *)(iVar25 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x10)" ( (binary_expression "iVar25 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) })) })) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar5 = *local_50;" (assignment_expression "iVar5 = *local_50" identifier = (pointer_expression "*local_50" * identifier)) ;) (expression_statement "*local_50 = iVar8;" (assignment_expression "*local_50 = iVar8" (pointer_expression "*local_50" * identifier) = identifier) ;) (if_statement "if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" if (parenthesized_expression "(*(int *)(iVar9 + 0xa0) != 0)" ( (binary_expression "*(int *)(iVar9 + 0xa0) != 0" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" { (expression_statement "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;" (assignment_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6" (pointer_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" * (cast_expression "(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x18)" ( (binary_expression "*(int *)(iVar9 + 0xa0) + 0x18" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "local_50 + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_00091c64 != (undefined4 *)0x0)" ( (binary_expression "DAT_00091c64 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_00091c64 = &DAT_00091794;" (assignment_expression "DAT_00091c64 = &DAT_00091794" identifier = (pointer_expression "&DAT_00091794" & identifier)) ;) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" if (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" ( (binary_expression "DAT_00091798 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" { (expression_statement "DAT_00091c64 = DAT_00091794;" (assignment_expression "DAT_00091c64 = DAT_00091794" identifier = identifier) ;) (if_statement "if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }" if (parenthesized_expression "(PTR_s_start_00091360 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_00091360 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_000214f0();\n    }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }" if (parenthesized_expression "(DAT_00091c6c != 0)" ( (binary_expression "DAT_00091c6c != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000214f0();\n  }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }" if (parenthesized_expression "(DAT_00091c70 != 0)" ( (binary_expression "DAT_00091c70 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000214f0();\n  }" { (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0002ff70();" (call_expression "FUN_0002ff70()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" if (parenthesized_expression "((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0))" ( (binary_expression "(DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00091d70 != 0)" ( (binary_expression "DAT_00091d70 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00091810 != (undefined4 *)0x0)" ( (binary_expression "DAT_00091810 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" { (expression_statement "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" identifier = (call_expression "dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" identifier (argument_list "(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" ( number_literal , (string_literal ""\nAs-needed library included to satisfy reference by file (symbol)\n\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_000317f0(uVar6);" (call_expression "FUN_000317f0(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (for_statement "for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" for ( (assignment_expression "puVar13 = DAT_00091810" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" { (expression_statement "FUN_000317f0(&DAT_0004be86,puVar13[1]);" (call_expression "FUN_000317f0(&DAT_0004be86,puVar13[1])" identifier (argument_list "(&DAT_0004be86,puVar13[1])" ( (pointer_expression "&DAT_0004be86" & identifier) , (subscript_expression "puVar13[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar7 = strlen((char *)puVar13[1]);" (assignment_expression "sVar7 = strlen((char *)puVar13[1])" identifier = (call_expression "strlen((char *)puVar13[1])" identifier (argument_list "((char *)puVar13[1])" ( (cast_expression "(char *)puVar13[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar7)" ( (binary_expression "0x1c < sVar7" number_literal < identifier) )) (compound_statement "{\n        FUN_00030840();\n        sVar7 = 0;\n      }" { (expression_statement "FUN_00030840();" (call_expression "FUN_00030840()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);" do (compound_statement "{\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      }" { (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar7 = sVar7 + 1;" (assignment_expression "sVar7 = sVar7 + 1" identifier = (binary_expression "sVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar7 != 0x1e)" ( (binary_expression "sVar7 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" if (parenthesized_expression "(puVar13[2] != 0)" ( (binary_expression "puVar13[2] != 0" (subscript_expression "puVar13[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" { (expression_statement "FUN_000317f0(&DAT_0004c110,puVar13[2]);" (call_expression "FUN_000317f0(&DAT_0004c110,puVar13[2])" identifier (argument_list "(&DAT_0004c110,puVar13[2])" ( (pointer_expression "&DAT_0004c110" & identifier) , (subscript_expression "puVar13[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_000317f0("(%pT)\n",puVar13[3]);" (call_expression "FUN_000317f0("(%pT)\n",puVar13[3])" identifier (argument_list "("(%pT)\n",puVar13[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar13[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (labeled_statement "joined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" if (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" * (cast_expression "(byte *)((int)piVar24 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 0x25)" ( (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }" { (expression_statement "iVar5 = piVar24[4];" (assignment_expression "iVar5 = piVar24[4]" identifier = (subscript_expression "piVar24[4]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);" (assignment_expression "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" identifier = (call_expression "bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" identifier (argument_list "(iVar5,DAT_00091c50,DAT_00091cdc)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar9 = DAT_00091c50;" (assignment_expression "iVar9 = DAT_00091c50" identifier = identifier) ;) (if_statement "if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" if (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0))" ( (binary_expression "(((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_00091c20._3_1_ & 8) != 0)" ( (binary_expression "(DAT_00091c20._3_1_ & 8) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 8)" ( (binary_expression "DAT_00091c20._3_1_ & 8" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }" { (if_statement "if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" { (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 4)" * (cast_expression "(undefined4 **)(iVar5 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;" if (parenthesized_expression "((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))" ( (binary_expression "(puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" (parenthesized_expression "(puVar13[1] != puVar20[1])" ( (binary_expression "puVar13[1] != puVar20[1]" (subscript_expression "puVar13[1]" identifier [ number_literal ]) != (subscript_expression "puVar20[1]" identifier [ number_literal ])) )) && (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" * (cast_expression "(byte *)(iVar5 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (goto_statement "goto LAB_000282ef;" goto statement_identifier ;)) (goto_statement "goto LAB_00028063;" goto statement_identifier ;) })) (if_statement "if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" if (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" ( (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" * (cast_expression "(byte *)(iVar5 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x28)" ( (binary_expression "iVar5 + 0x28" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" { (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar5 + 4)" * (cast_expression "(undefined4 **)(iVar5 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) ))))) ;) (labeled_statement "LAB_000282ef:\n            uVar6 = *puVar20;" statement_identifier : (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;)) (expression_statement "uVar12 = *puVar13;" (assignment_expression "uVar12 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" identifier = (call_expression "dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" identifier (argument_list "(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" ( number_literal , (string_literal ""%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9)" identifier (argument_list "(uVar18,uVar12,iVar5,uVar6,iVar9)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (goto_statement "goto joined_r0x0002832b;" goto statement_identifier ;) })) }) (else_clause "else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" else (compound_statement "{\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" { (labeled_statement "joined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" statement_identifier : (if_statement "if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" { (labeled_statement "LAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" statement_identifier : (if_statement "if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" if (parenthesized_expression "(*(int *)(iVar5 + 0x68) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x68) == 0" (pointer_expression "*(int *)(iVar5 + 0x68)" * (cast_expression "(int *)(iVar5 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x68)" ( (binary_expression "iVar5 + 0x68" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" if (parenthesized_expression "(DAT_00091cd0 == 0)" ( (binary_expression "DAT_00091cd0 == 0" identifier == number_literal) )) (compound_statement "{\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" { (expression_statement "uVar6 = bfd_set_error_handler(FUN_0001ded0);" (assignment_expression "uVar6 = bfd_set_error_handler(FUN_0001ded0)" identifier = (call_expression "bfd_set_error_handler(FUN_0001ded0)" identifier (argument_list "(FUN_0001ded0)" ( identifier )))) ;) })) (expression_statement "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0xac)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar5,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }" { (if_statement "if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" if (parenthesized_expression "(DAT_00091cd0 != 0)" ( (binary_expression "DAT_00091cd0 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" { (expression_statement "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" identifier (argument_list "(0,"%X%P: failed to merge target specific data of file %pB\n",5)" ( number_literal , (string_literal ""%X%P: failed to merge target specific data of file %pB\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" identifier (argument_list "(uVar12,iVar5)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00028ea4;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" else (compound_statement "{\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" { (labeled_statement "LAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" statement_identifier : (if_statement "if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" if (parenthesized_expression "(DAT_00091cd0 != 0)" ( (binary_expression "DAT_00091cd0 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x00028eb3;" goto statement_identifier ;))) }))) (expression_statement "bfd_set_error_handler(uVar6);" (call_expression "bfd_set_error_handler(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;) }))) }))) (if_statement "if (DAT_00091cd0 == 0) goto LAB_000280c0;" if (parenthesized_expression "(DAT_00091cd0 == 0)" ( (binary_expression "DAT_00091cd0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000280c0;" goto statement_identifier ;)) (expression_statement "uVar6 = bfd_printable_name(DAT_00091c50);" (assignment_expression "uVar6 = bfd_printable_name(DAT_00091c50)" identifier = (call_expression "bfd_printable_name(DAT_00091c50)" identifier (argument_list "(DAT_00091c50)" ( identifier )))) ;) (expression_statement "uVar12 = bfd_printable_name(iVar5);" (assignment_expression "uVar12 = bfd_printable_name(iVar5)" identifier = (call_expression "bfd_printable_name(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" identifier = (call_expression "dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" identifier (argument_list "(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" ( number_literal , (string_literal ""%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6)" identifier (argument_list "(uVar18,uVar12,iVar5,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;) }) (else_clause "else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" else (compound_statement "{\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" { (labeled_statement "LAB_000280c0:\n        piVar24 = (int *)piVar24[6];" statement_identifier : (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;)) }))) (if_statement "if (piVar24 == (int *)0x0) break;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (if_statement "if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" if (parenthesized_expression "(DAT_00091d14 != 0)" ( (binary_expression "DAT_00091d14 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" for ( (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" { (while_statement "while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" while (parenthesized_expression "(iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0)" ( (comma_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0" (assignment_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports")" identifier = (call_expression "bfd_get_section_by_name(piVar24[4],".exports")" identifier (argument_list "(piVar24[4],".exports")" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , (string_literal "".exports"" " string_content ") )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" { (expression_statement "iVar9 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x24)" identifier = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = (char *)xmalloc(iVar9);" (assignment_expression "pcVar10 = (char *)xmalloc(iVar9)" identifier = (cast_expression "(char *)xmalloc(iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar9)" identifier (argument_list "(iVar9)" ( identifier ))))) ;) (expression_statement "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);" (assignment_expression "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" identifier = (call_expression "bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" identifier (argument_list "(piVar24[4],iVar5,pcVar10,0,0,iVar9)" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , identifier )))) ;) (if_statement "if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" { (expression_statement "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" identifier (argument_list "(0,"%X%P: unable to read .exports section contents\n",5)" ( number_literal , (string_literal ""%X%P: unable to read .exports section contents\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" identifier (argument_list "(uVar12,iVar5)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar11 = pcVar10 + iVar9;" (assignment_expression "pcVar11 = pcVar10 + iVar9" identifier = (binary_expression "pcVar10 + iVar9" identifier + identifier)) ;) (for_statement "for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" for ( ; (binary_expression "pcVar10 < pcVar11" identifier < identifier) ; (assignment_expression "pcVar10 = pcVar10 + sVar7 + 1" identifier = (binary_expression "pcVar10 + sVar7 + 1" (binary_expression "pcVar10 + sVar7" identifier + identifier) + number_literal)) ) (compound_statement "{\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" { (expression_statement "uVar6 = FUN_00027750(uVar6,pcVar10,0,0);" (assignment_expression "uVar6 = FUN_00027750(uVar6,pcVar10,0,0)" identifier = (call_expression "FUN_00027750(uVar6,pcVar10,0,0)" identifier (argument_list "(uVar6,pcVar10,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" identifier = (call_expression "strlen(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) })) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;) (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_000281aa;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000281aa;" goto statement_identifier ;)) })) })) (labeled_statement "LAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" statement_identifier : (expression_statement "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" (assignment_expression "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0)" identifier = (call_expression "FUN_00027750(0,&DAT_0004bfe8,0,0)" identifier (argument_list "(0,&DAT_0004bfe8,0,0)" ( number_literal , (pointer_expression "&DAT_0004bfe8" & identifier) , number_literal , number_literal )))) ;)) (expression_statement "iVar5 = xcalloc(1,0x3c);" (assignment_expression "iVar5 = xcalloc(1,0x3c)" identifier = (call_expression "xcalloc(1,0x3c)" identifier (argument_list "(1,0x3c)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" * (cast_expression "(undefined4 *)(iVar5 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(iVar5 + 0x38) = FUN_0001eb80;" (assignment_expression "*(code **)(iVar5 + 0x38) = FUN_0001eb80" (pointer_expression "*(code **)(iVar5 + 0x38)" * (cast_expression "(code **)(iVar5 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x38)" ( (binary_expression "iVar5 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" * (cast_expression "(undefined4 *)(iVar5 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000279d0(DAT_00091d14,iVar5,0);" (call_expression "FUN_000279d0(DAT_00091d14,iVar5,0)" identifier (argument_list "(DAT_00091d14,iVar5,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0002ad40();" (call_expression "FUN_0002ad40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar15 = PTR__sch_istable_00090fa8" identifier = identifier) ;) (if_statement "if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_00091d2c != 0)" ( (binary_expression "DAT_00091d2c != 0" identifier != number_literal) )) (compound_statement "{\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" { (expression_statement "local_40 = DAT_00091c58;" (assignment_expression "local_40 = DAT_00091c58" identifier = identifier) ;) (expression_statement "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" if (parenthesized_expression "(DAT_00091c58 != 0)" ( (binary_expression "DAT_00091c58 != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" { (do_statement "do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);" do (compound_statement "{\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      }" { (for_statement "for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" for ( (assignment_expression "puVar13 = *(undefined4 **)(local_40 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(local_40 + 0x60)" * (cast_expression "(undefined4 **)(local_40 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_40 + 0x60)" ( (binary_expression "local_40 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ) (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" { (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" { (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" identifier = (cast_expression "(byte *)*puVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "bVar19 = *pbVar3;" (assignment_expression "bVar19 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (if_statement "if (bVar19 == 0) break;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" identifier = (subscript_expression "puVar15[(uint)bVar19 * 2]" identifier [ (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" while (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)))" ( (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))" ( (binary_expression "(bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" ( (binary_expression "bVar2 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar19 == 0x5f)" ( (binary_expression "bVar19 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" { (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (expression_statement "bVar19 = *pbVar17;" (assignment_expression "bVar19 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (if_statement "if (bVar19 == 0) goto LAB_000299d0;" if (parenthesized_expression "(bVar19 == 0)" ( (binary_expression "bVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000299d0;" goto statement_identifier ;)) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" identifier = (subscript_expression "puVar15[(uint)bVar19 * 2]" identifier [ (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000299b0;" goto statement_identifier ;)) })) (labeled_statement "LAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);" statement_identifier : (expression_statement "sVar7 = strlen((char *)pbVar3);" (assignment_expression "sVar7 = strlen((char *)pbVar3)" identifier = (call_expression "strlen((char *)pbVar3)" identifier (argument_list "((char *)pbVar3)" ( (cast_expression "(char *)pbVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (expression_statement "pcVar10 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar7 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 10)" identifier (argument_list "(sVar7 + 10)" ( (binary_expression "sVar7 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar10 = cVar4;" (assignment_expression "*pcVar10 = cVar4" (pointer_expression "*pcVar10" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" identifier (argument_list "(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" ( (binary_expression "pcVar10 + (cVar4 != '\0')" identifier + (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar10[1] = cVar4;" (assignment_expression "pcVar10[1] = cVar4" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" identifier (argument_list "(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" ( (binary_expression "pcVar10 + (2 - (uint)(cVar4 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar4 == '\0'))" ( (binary_expression "2 - (uint)(cVar4 == '\0')" number_literal - (call_expression "(uint)(cVar4 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar10);" (call_expression "free(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) (labeled_statement "LAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);" statement_identifier : (expression_statement "local_40 = *(int *)(local_40 + 0x98);" (assignment_expression "local_40 = *(int *)(local_40 + 0x98)" identifier = (pointer_expression "*(int *)(local_40 + 0x98)" * (cast_expression "(int *)(local_40 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + 0x98)" ( (binary_expression "local_40 + 0x98" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(local_40 != 0)" ( (binary_expression "local_40 != 0" identifier != number_literal) )) ;) })) })) (expression_statement "FUN_00024940(1);" (call_expression "FUN_00024940(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar13 = DAT_000917ec;" (assignment_expression "puVar13 = DAT_000917ec" identifier = identifier) ;) (labeled_statement "joined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    }" { (if_statement "if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" if (parenthesized_expression "(puVar13[3] != 0)" ( (binary_expression "puVar13[3] != 0" (subscript_expression "puVar13[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" { (expression_statement "FUN_0002f4f0(puVar13[3]);" (call_expression "FUN_0002f4f0(puVar13[3])" identifier (argument_list "(puVar13[3])" ( (subscript_expression "puVar13[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar6 = DAT_00091db4;" (assignment_expression "uVar6 = DAT_00091db4" identifier = identifier) ;) (if_statement "if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" if (parenthesized_expression "(DAT_00091dc0 == 0)" ( (binary_expression "DAT_00091dc0 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid origin for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid origin for memory region %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" else (compound_statement "{\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" { (expression_statement "puVar13[4] = DAT_00091db4;" (assignment_expression "puVar13[4] = DAT_00091db4" (subscript_expression "puVar13[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[7] = uVar6;" (assignment_expression "puVar13[7] = uVar6" (subscript_expression "puVar13[7]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" if (parenthesized_expression "(puVar13[6] != 0)" ( (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" { (expression_statement "FUN_0002f4f0(puVar13[6]);" (call_expression "FUN_0002f4f0(puVar13[6])" identifier (argument_list "(puVar13[6])" ( (subscript_expression "puVar13[6]" identifier [ number_literal ]) ))) ;) (if_statement "if (DAT_00091dc0 == 0) goto LAB_000283a0;" if (parenthesized_expression "(DAT_00091dc0 == 0)" ( (binary_expression "DAT_00091dc0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000283a0;" goto statement_identifier ;)) (expression_statement "puVar13[5] = DAT_00091db4;" (assignment_expression "puVar13[5] = DAT_00091db4" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) (expression_statement "DAT_00091da0 = 0;" (assignment_expression "DAT_00091da0 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" if (parenthesized_expression "(((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))))" ( (binary_expression "((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" (parenthesized_expression "((DAT_00091c27 & 0x20) == 0)" ( (binary_expression "(DAT_00091c27 & 0x20) == 0" (parenthesized_expression "(DAT_00091c27 & 0x20)" ( (binary_expression "DAT_00091c27 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)" (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_00091cc0 != 0)" ( (binary_expression "DAT_00091cc0 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" { (if_statement "if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" if (parenthesized_expression "(DAT_00091d4c == 0)" ( (binary_expression "DAT_00091d4c == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" else (compound_statement "{\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" { (if_statement "if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" if (parenthesized_expression "(DAT_00091d4c == 2)" ( (binary_expression "DAT_00091d4c == 2" identifier == number_literal) )) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }" { (expression_statement "local_20[0] = (char *)0x4;" (assignment_expression "local_20[0] = (char *)0x4" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_20[0] = local_20[0] + -1;" (assignment_expression "local_20[0] = local_20[0] + -1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + -1" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal)) ;) }) while (parenthesized_expression "(local_20[0] != (char *)0x0)" ( (binary_expression "local_20[0] != (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" else (compound_statement "{\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" { (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);" do (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_20[0] = local_20[0] + 1;" (assignment_expression "local_20[0] = local_20[0] + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (binary_expression "local_20[0] + 1" (subscript_expression "local_20[0]" identifier [ number_literal ]) + number_literal)) ;) }) while (parenthesized_expression "(local_20[0] < (char *)0x5)" ( (binary_expression "local_20[0] < (char *)0x5" (subscript_expression "local_20[0]" identifier [ number_literal ]) < (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_20[0] = (char *)0xffffffff;" (assignment_expression "local_20[0] = (char *)0xffffffff" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" identifier (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "FUN_00025560();" (call_expression "FUN_00025560()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar19 = (byte)DAT_00091c20;" (assignment_expression "bVar19 = (byte)DAT_00091c20" identifier = (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ;) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" ( (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" ( (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" * (cast_expression "(byte *)((int)piVar24 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 0x25)" ( (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "iVar5 = *(int *)(piVar24[4] + 0x60)" identifier = (pointer_expression "*(int *)(piVar24[4] + 0x60)" * (cast_expression "(int *)(piVar24[4] + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[4] + 0x60)" ( (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) ))))) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x2000)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" if (parenthesized_expression "((bVar19 & 0x40) != 0)" ( (binary_expression "(bVar19 & 0x40) != 0" (parenthesized_expression "(bVar19 & 0x40)" ( (binary_expression "bVar19 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x184)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00091c50,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;) })) (expression_statement "iVar5 = DAT_00091c58;" (assignment_expression "iVar5 = DAT_00091c58" identifier = identifier) ;) (if_statement "if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00091c26 & 0x20) != 0)" ( (binary_expression "(DAT_00091c26 & 0x20) != 0" (parenthesized_expression "(DAT_00091c26 & 0x20)" ( (binary_expression "DAT_00091c26 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" { (for_statement "for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" for ( ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = *(int *)(iVar5 + 0x98)" identifier = (pointer_expression "*(int *)(iVar5 + 0x98)" * (cast_expression "(int *)(iVar5 + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x98)" ( (binary_expression "iVar5 + 0x98" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" { (expression_statement "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20)" identifier = (call_expression "bfd_link_check_relocs(iVar5,&DAT_00091c20)" identifier (argument_list "(iVar5,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) )))) ;) (if_statement "if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00091d24 = 0;\n      }" { (expression_statement "DAT_00091d24 = 0;" (assignment_expression "DAT_00091d24 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_0002ff90();" (call_expression "FUN_0002ff90()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar26 = (int *)0x0;" (assignment_expression "piVar26 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_0001e040();" (call_expression "FUN_0001e040()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" identifier = (binary_expression "DAT_00091780 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025680();" (call_expression "FUN_00025680()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar24 = (int *)*DAT_00091be0;" (assignment_expression "piVar24 = (int *)*DAT_00091be0" identifier = (cast_expression "(int *)*DAT_00091be0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00091be0" * identifier))) ;) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }" { (labeled_statement "LAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" statement_identifier : (if_statement "if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" if (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" { (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar26[0x12]" number_literal - (subscript_expression "piVar26[0x12]" identifier [ number_literal ]))) ;) (while_statement "while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" while (parenthesized_expression "((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)))" ( (parenthesized_expression "(piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))" ( (binary_expression "piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" (binary_expression "piVar23 != piVar26" identifier != identifier) && (parenthesized_expression "(piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" ( (comma_expression "piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0" (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" { (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar26[0x12]" number_literal - (subscript_expression "piVar26[0x12]" identifier [ number_literal ]))) ;) })) }))) }) (else_clause "else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" else (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" { (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar29 = DAT_00091be0;" (assignment_expression "piVar29 = DAT_00091be0" identifier = identifier) ;) (while_statement "while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" while (parenthesized_expression "(piVar14 = piVar24, piVar24[1] == 0)" ( (comma_expression "piVar14 = piVar24, piVar24[1] == 0" (assignment_expression "piVar14 = piVar24" identifier = identifier) , (binary_expression "piVar24[1] == 0" (subscript_expression "piVar24[1]" identifier [ number_literal ]) == number_literal)) )) (compound_statement "{\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" { (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" if (parenthesized_expression "((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4]))" ( (binary_expression "(piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])" (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(piVar24 != (int *)piVar23[4])" ( (binary_expression "piVar24 != (int *)piVar23[4]" identifier != (cast_expression "(int *)piVar23[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[4]" identifier [ number_literal ]))) ))) )) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" { (expression_statement "FUN_000317b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar14 = (int *)*piVar29;" (assignment_expression "piVar14 = (int *)*piVar29" identifier = (cast_expression "(int *)*piVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier))) ;) })) (expression_statement "piVar24[0x12] = -2 - piVar24[0x12];" (assignment_expression "piVar24[0x12] = -2 - piVar24[0x12]" (subscript_expression "piVar24[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar24[0x12]" number_literal - (subscript_expression "piVar24[0x12]" identifier [ number_literal ]))) ;) (expression_statement "piVar23 = piVar24;" (assignment_expression "piVar23 = piVar24" identifier = identifier) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (if_statement "if (piVar27 != (int *)0x0) goto LAB_0002855a;" if (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002855a;" goto statement_identifier ;)) (labeled_statement "LAB_0002855c:\n      piVar24 = (int *)*piVar14;" statement_identifier : (expression_statement "piVar24 = (int *)*piVar14;" (assignment_expression "piVar24 = (int *)*piVar14" identifier = (cast_expression "(int *)*piVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar14" * identifier))) ;)) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" identifier = identifier) ;) (expression_statement "piVar29 = piVar14;" (assignment_expression "piVar29 = piVar14" identifier = identifier) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028564;" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00028564;" goto statement_identifier ;)) })) (if_statement "if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "(piVar24[1] != 0xe)" ( (binary_expression "piVar24[1] != 0xe" (subscript_expression "piVar24[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" { (labeled_statement "LAB_0002855a:\n      piVar26 = piVar27;" statement_identifier : (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;)) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_00022cf0(piVar24[2],0,0);" (assignment_expression "iVar5 = FUN_00022cf0(piVar24[2],0,0)" identifier = (call_expression "FUN_00022cf0(piVar24[2],0,0)" identifier (argument_list "(piVar24[2],0,0)" ( (subscript_expression "piVar24[2]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (if_statement "if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" { (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" if (parenthesized_expression "(piVar24[3] != 0)" ( (binary_expression "piVar24[3] != 0" (subscript_expression "piVar24[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" { (do_statement "do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);" do (compound_statement "{\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        }" { (expression_statement "iVar5 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0x14)" identifier = (pointer_expression "*(int *)(iVar5 + 0x14)" * (cast_expression "(int *)(iVar5 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) goto LAB_00028636;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028636;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(iVar5 + 0x48) < 0)" ( (binary_expression "*(int *)(iVar5 + 0x48) < 0" (pointer_expression "*(int *)(iVar5 + 0x48)" * (cast_expression "(int *)(iVar5 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x48)" ( (binary_expression "iVar5 + 0x48" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" { (expression_statement "iVar9 = piVar27[5];" (assignment_expression "iVar9 = piVar27[5]" identifier = (subscript_expression "piVar27[5]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = piVar23[4];" (assignment_expression "iVar8 = piVar23[4]" identifier = (subscript_expression "piVar23[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar9 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }" { (expression_statement "DAT_00091be4 = (int *)(iVar9 + 0x10);" (assignment_expression "DAT_00091be4 = (int *)(iVar9 + 0x10)" identifier = (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 != 0) goto LAB_00028f0d;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00028f0d;" goto statement_identifier ;)) (labeled_statement "LAB_00029143:\n          DAT_00091be4 = piVar23 + 4;" statement_identifier : (expression_statement "DAT_00091be4 = piVar23 + 4;" (assignment_expression "DAT_00091be4 = piVar23 + 4" identifier = (binary_expression "piVar23 + 4" identifier + number_literal)) ;)) }) (else_clause "else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" else (compound_statement "{\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" { (expression_statement "*(int *)(iVar8 + 0x14) = iVar9;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar9" (pointer_expression "*(int *)(iVar8 + 0x14)" * (cast_expression "(int *)(iVar8 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x14)" ( (binary_expression "iVar8 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" identifier = (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) goto LAB_00029143;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029143;" goto statement_identifier ;)) (labeled_statement "LAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;" statement_identifier : (expression_statement "*(int **)(iVar9 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar9 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar9 + 0x14)" * (cast_expression "(int **)(iVar9 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;)) }))) (expression_statement "piVar27[5] = iVar5;" (assignment_expression "piVar27[5] = iVar5" (subscript_expression "piVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "*(int **)(iVar5 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar5 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar5 + 0x10)" * (cast_expression "(int **)(iVar5 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));" do (compound_statement "{\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        }" { (expression_statement "piVar27[0x12] = -2 - piVar27[0x12];" (assignment_expression "piVar27[0x12] = -2 - piVar27[0x12]" (subscript_expression "piVar27[0x12]" identifier [ number_literal ]) = (binary_expression "-2 - piVar27[0x12]" number_literal - (subscript_expression "piVar27[0x12]" identifier [ number_literal ]))) ;) (expression_statement "iVar25 = piVar27[7];" (assignment_expression "iVar25 = piVar27[7]" identifier = (subscript_expression "piVar27[7]" identifier [ number_literal ])) ;) (if_statement "if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }" if (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0))" ( (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0))" ( (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" * (cast_expression "(int *)(iVar25 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x94)" ( (binary_expression "iVar25 + 0x94" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar8 = iVar25, iVar9 == 0)" ( (comma_expression "iVar8 = iVar25, iVar9 == 0" (assignment_expression "iVar8 = iVar25" identifier = identifier) , (binary_expression "iVar9 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            iVar9 = iVar25;\n          }" { (expression_statement "iVar9 = iVar25;" (assignment_expression "iVar9 = iVar25" identifier = identifier) ;) })) }) while (parenthesized_expression "((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0))" ( (binary_expression "(piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" (parenthesized_expression "(piVar23 != piVar27)" ( (binary_expression "piVar23 != piVar27" identifier != identifier) )) && (parenthesized_expression "(piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" ( (comma_expression "piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0" (assignment_expression "piVar27 = (int *)piVar27[4]" identifier = (cast_expression "(int *)piVar27[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[4]" identifier [ number_literal ]))) , (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar5 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar5 + 0x1c)" * (cast_expression "(int *)(iVar5 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)(iVar5 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar5 + 0x14)" identifier = (pointer_expression "*(int **)(iVar5 + 0x14)" * (cast_expression "(int **)(iVar5 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" if (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);" do (compound_statement "{\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              }" { (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;" if (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0))" ( (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0))" ( (binary_expression "(-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)" (parenthesized_expression "(-1 < piVar27[0x12])" ( (binary_expression "-1 < piVar27[0x12]" number_literal < (subscript_expression "piVar27[0x12]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar25 = piVar27[7], iVar25 != 0)" ( (comma_expression "iVar25 = piVar27[7], iVar25 != 0" (assignment_expression "iVar25 = piVar27[7]" identifier = (subscript_expression "piVar27[7]" identifier [ number_literal ])) , (binary_expression "iVar25 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" ( (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" * (cast_expression "(int *)(iVar25 + 0x94)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x94)" ( (binary_expression "iVar25 + 0x94" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_00028f6a;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)piVar27[5];" (assignment_expression "piVar27 = (int *)piVar27[5]" identifier = (cast_expression "(int *)piVar27[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[5]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" else (compound_statement "{\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" { (labeled_statement "LAB_00028f6a:\n            piVar27 = (int *)0x0;" statement_identifier : (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" if (parenthesized_expression "(iVar25 != iVar8)" ( (binary_expression "iVar25 != iVar8" identifier != identifier) )) (compound_statement "{\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" { (expression_statement "iVar5 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar9 + 0x10)" identifier = (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" identifier = (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00091c50 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" * (cast_expression "(int *)(DAT_00091c50 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" else (compound_statement "{\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" { (expression_statement "*(int *)(iVar5 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" identifier = (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar5;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar5" (pointer_expression "*(int *)(DAT_00091c50 + 100)" * (cast_expression "(int *)(DAT_00091c50 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 100)" ( (binary_expression "DAT_00091c50 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" else (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" { (expression_statement "*(int *)(iVar28 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "iVar5 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar25 + 0xc)" identifier = (pointer_expression "*(int *)(iVar25 + 0xc)" * (cast_expression "(int *)(iVar25 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar8 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar8 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar8 + 0xc)" * (cast_expression "(int *)(iVar8 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xc)" ( (binary_expression "iVar8 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }" { (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar8;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar8" (pointer_expression "*(int *)(DAT_00091c50 + 100)" * (cast_expression "(int *)(DAT_00091c50 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 100)" ( (binary_expression "DAT_00091c50 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" else (compound_statement "{\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" { (expression_statement "*(int *)(iVar5 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x10)" * (cast_expression "(int *)(iVar5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x10)" ( (binary_expression "iVar5 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int *)(iVar9 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar9 + 0x10)" * (cast_expression "(int *)(iVar9 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x10)" ( (binary_expression "iVar9 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(int *)(iVar25 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar25 + 0xc)" * (cast_expression "(int *)(iVar25 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) )))) = identifier) ;) })) }))) })) })) (expression_statement "piVar24 = (int *)FUN_0001dd70();" (assignment_expression "piVar24 = (int *)FUN_0001dd70()" identifier = (cast_expression "(int *)FUN_0001dd70()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001dd70()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar5 = *DAT_00091be0;" (assignment_expression "iVar5 = *DAT_00091be0" identifier = (pointer_expression "*DAT_00091be0" * identifier)) ;) (expression_statement "*DAT_00091be0 = *(int *)*piVar29;" (assignment_expression "*DAT_00091be0 = *(int *)*piVar29" (pointer_expression "*DAT_00091be0" * identifier) = (pointer_expression "*(int *)*piVar29" * (cast_expression "(int *)*piVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier)))) ;) (expression_statement "iVar9 = *piVar24;" (assignment_expression "iVar9 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar29 = iVar9;" (assignment_expression "*piVar29 = iVar9" (pointer_expression "*piVar29" * identifier) = identifier) ;) (if_statement "if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_0009184c = piVar29;\n      }" { (expression_statement "DAT_0009184c = piVar29;" (assignment_expression "DAT_0009184c = piVar29" identifier = identifier) ;) })) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;) (expression_statement "piVar14 = DAT_00091be0;" (assignment_expression "piVar14 = DAT_00091be0" identifier = identifier) ;) (goto_statement "goto LAB_0002855c;" goto statement_identifier ;) })) (labeled_statement "LAB_00028636:\n    iVar5 = piVar24[2];" statement_identifier : (expression_statement "iVar5 = piVar24[2];" (assignment_expression "iVar5 = piVar24[2]" identifier = (subscript_expression "piVar24[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: %s not found for insert\n",5)" identifier (argument_list "(0,"%F%P: %s not found for insert\n",5)" ( number_literal , (string_literal ""%F%P: %s not found for insert\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,iVar5);" (call_expression "FUN_00031760(uVar6,iVar5)" identifier (argument_list "(uVar6,iVar5)" ( identifier , identifier ))) ;) }))) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal)) ;) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_0009179c" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ) (compound_statement "{\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar13 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(piVar24[4] + 0x60)" identifier = (pointer_expression "*(undefined4 **)(piVar24[4] + 0x60)" * (cast_expression "(undefined4 **)(piVar24[4] + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24[4] + 0x60)" ( (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) ))))) ;) (labeled_statement "joined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      }" { (if_statement "if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" if (parenthesized_expression "(puVar13[0xf] == 0)" ( (binary_expression "puVar13[0xf] == 0" (subscript_expression "puVar13[0xf]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" { (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;" if (parenthesized_expression "((*(byte *)(piVar24 + 9) & 0x10) != 0)" ( (binary_expression "(*(byte *)(piVar24 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar24 + 9) & 0x10)" ( (binary_expression "*(byte *)(piVar24 + 9) & 0x10" (pointer_expression "*(byte *)(piVar24 + 9)" * (cast_expression "(byte *)(piVar24 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24 + 9)" ( (binary_expression "piVar24 + 9" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000286ac;" goto statement_identifier ;)) (expression_statement "iVar5 = FUN_0001eff0();" (assignment_expression "iVar5 = FUN_0001eff0()" identifier = (call_expression "FUN_0001eff0()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar32 = iVar5 == 0;" (assignment_expression "bVar32 = iVar5 == 0" identifier = (binary_expression "iVar5 == 0" identifier == number_literal)) ;) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }" { (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" identifier = (cast_expression "(byte *)*puVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar30 = (byte *)"COMMON";" (assignment_expression "pbVar30 = (byte *)"COMMON"" identifier = (cast_expression "(byte *)"COMMON"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""COMMON"" " string_content "))) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" identifier = (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" identifier = (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (if_statement "if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" if (parenthesized_expression "((!bVar31 && !bVar32) == bVar31)" ( (binary_expression "(!bVar31 && !bVar32) == bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" ( (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) == identifier) )) (compound_statement "{\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }" { (if_statement "if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" if (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0))" ( (binary_expression "(((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_00091cc0 != 0)" ( (binary_expression "DAT_00091cc0 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" { (if_statement "if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" if (parenthesized_expression "(DAT_0009185c == 0)" ( (binary_expression "DAT_0009185c == 0" identifier == number_literal) )) (compound_statement "{\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" { (expression_statement "DAT_0009185c = FUN_00022cf0(".bss",0,1);" (assignment_expression "DAT_0009185c = FUN_00022cf0(".bss",0,1)" identifier = (call_expression "FUN_00022cf0(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) })) (expression_statement "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);" (call_expression "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" identifier (argument_list "(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" ( (binary_expression "DAT_0009185c + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" else (if_statement "if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" if (parenthesized_expression "(DAT_00091d3c == 1)" ( (binary_expression "DAT_00091d3c == 1" identifier == number_literal) )) (compound_statement "{\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }" { (expression_statement "iVar5 = FUN_00022cf0("/DISCARD/",0,1);" (assignment_expression "iVar5 = FUN_00022cf0("/DISCARD/",0,1)" identifier = (call_expression "FUN_00022cf0("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" if (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" ( (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" { (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" identifier = (call_expression "FUN_0002f3c0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" identifier (argument_list "(iVar5 + 8,puVar13,0,iVar5)" ( (binary_expression "iVar5 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" else (compound_statement "{\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" { (if_statement "if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" if (parenthesized_expression "(DAT_00091d3c == 3)" ( (binary_expression "DAT_00091d3c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" { (expression_statement "uVar6 = puVar13[0x25];" (assignment_expression "uVar6 = puVar13[0x25]" identifier = (subscript_expression "puVar13[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" identifier (argument_list "(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" ( number_literal , (string_literal ""%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,puVar13,uVar6);" (call_expression "FUN_00031760(uVar12,puVar13,uVar6)" identifier (argument_list "(uVar12,puVar13,uVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }" if (parenthesized_expression "((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0))" ( (binary_expression "(DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)" (parenthesized_expression "(DAT_00091d58 == 0)" ( (binary_expression "DAT_00091d58 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar5 = FUN_00020cd0(), iVar5 == 0)" ( (comma_expression "iVar5 = FUN_00020cd0(), iVar5 == 0" (assignment_expression "iVar5 = FUN_00020cd0()" identifier = (call_expression "FUN_00020cd0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar6 = 0;\n              }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar6 = 0x17e;\n              }" else (compound_statement "{\n                uVar6 = 0x17e;\n              }" { (expression_statement "uVar6 = 0x17e;" (assignment_expression "uVar6 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);" (assignment_expression "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6)" identifier = (call_expression "FUN_000300e0(puVar13,pbVar3,uVar6)" identifier (argument_list "(puVar13,pbVar3,uVar6)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" { (expression_statement "iVar5 = FUN_00022cf0(pbVar3,uVar6,1);" (assignment_expression "iVar5 = FUN_00022cf0(pbVar3,uVar6,1)" identifier = (call_expression "FUN_00022cf0(pbVar3,uVar6,1)" identifier (argument_list "(pbVar3,uVar6,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" if (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" * (cast_expression "(int *)(iVar5 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" ( (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" ( (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" ( (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" { (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" identifier = (call_expression "FUN_0002f3c0(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" * (cast_expression "(undefined4 *)(iVar5 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x2c)" ( (binary_expression "iVar5 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" identifier (argument_list "(iVar5 + 8,puVar13,0,iVar5)" ( (binary_expression "iVar5 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) (if_statement "if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" if (parenthesized_expression "(DAT_00091d3c == 2)" ( (binary_expression "DAT_00091d3c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" { (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" * (cast_expression "(undefined4 *)(iVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = puVar13[0x25];" (assignment_expression "uVar12 = puVar13[0x25]" identifier = (subscript_expression "puVar13[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" identifier = (call_expression "dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" identifier (argument_list "(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" ( number_literal , (string_literal ""%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,puVar13,uVar12,uVar6);" (call_expression "FUN_00031760(uVar18,puVar13,uVar12,uVar6)" identifier (argument_list "(uVar18,puVar13,uVar12,uVar6)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            puVar13[0xf] = puVar15;\n          }" else (compound_statement "{\n            puVar13[0xf] = puVar15;\n          }" { (expression_statement "puVar13[0xf] = puVar15;" (assignment_expression "puVar13[0xf] = puVar15" (subscript_expression "puVar13[0xf]" identifier [ number_literal ]) = identifier) ;) }))) })) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) (if_statement "if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" if (parenthesized_expression "(bVar19 != 2)" ( (binary_expression "bVar19 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" * (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" * (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18c)" ( (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00091c50 + 4)" * (cast_expression "(int *)(DAT_00091c50 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 4)" ( (binary_expression "DAT_00091c50 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00091c50,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;) (expression_statement "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");" (assignment_expression "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_00091c50,".text")" identifier (argument_list "(DAT_00091c50,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }" { (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }) (else_clause "else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" else (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" { (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" identifier = (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" if (parenthesized_expression "(DAT_00091d50 == 0)" ( (binary_expression "DAT_00091d50 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" else (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" { (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" for ( ; (comma_expression "DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_000917cc = piVar24" identifier = identifier) , (comma_expression "DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_00091c50 = iVar5" identifier = identifier) , (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)))) ; (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" { (expression_statement "iVar5 = piVar26[5];" (assignment_expression "iVar5 = piVar26[5]" identifier = (subscript_expression "piVar26[5]" identifier [ number_literal ])) ;) (if_statement "if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" if (parenthesized_expression "((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))))" ( (binary_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" (parenthesized_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" ( (binary_expression "((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar5 != 0) && (piVar26[9] == 0))" ( (binary_expression "(iVar5 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(piVar26[9] == 0)" ( (binary_expression "piVar26[9] == 0" (subscript_expression "piVar26[9]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(piVar26[0xc] == 0)" ( (binary_expression "piVar26[0xc] == 0" (subscript_expression "piVar26[0xc]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" ( (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))" ( (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(piVar26[8] == *(int *)(iVar5 + 0x20))" ( (binary_expression "piVar26[8] == *(int *)(iVar5 + 0x20)" (subscript_expression "piVar26[8]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar5 + 0x20)" * (cast_expression "(int *)(iVar5 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x20)" ( (binary_expression "iVar5 + 0x20" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" { (expression_statement "piVar26[9] = *(int *)(iVar5 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar5 + 0x24)" (subscript_expression "piVar26[9]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" identifier = identifier) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) })) (if_statement "if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "((DAT_00091d2c != 0) && (DAT_000917c8 != 0))" ( (binary_expression "(DAT_00091d2c != 0) && (DAT_000917c8 != 0)" (parenthesized_expression "(DAT_00091d2c != 0)" ( (binary_expression "DAT_00091d2c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_000917c8 != 0)" ( (binary_expression "DAT_000917c8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar26 = piVar24 + DAT_000917c8;" (assignment_expression "piVar26 = piVar24 + DAT_000917c8" identifier = (binary_expression "piVar24 + DAT_000917c8" identifier + identifier)) ;) (do_statement "do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    }" { (while_statement "while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" while (parenthesized_expression "(iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0)" ( (comma_expression "iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0" (assignment_expression "iVar9 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) , (binary_expression "(*(byte *)(iVar9 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xd) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0xd) & 8" (pointer_expression "*(byte *)(iVar9 + 0xd)" * (cast_expression "(byte *)(iVar9 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xd)" ( (binary_expression "iVar9 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" { (expression_statement "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];" (assignment_expression "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(iVar9 + 0x14))[0xf]" (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x14))" ( (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" * (cast_expression "(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" if (parenthesized_expression "(((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0))" ( (binary_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5))" ( (binary_expression "(puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" ( (binary_expression "puVar13 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar13[0x25] != iVar5)" ( (binary_expression "puVar13[0x25] != iVar5" (subscript_expression "puVar13[0x25]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" ( (comma_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0" (assignment_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" identifier = (call_expression "strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" identifier (argument_list "((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" ( (cast_expression "(char *)**(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar9 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" * (cast_expression "(undefined4 **)(iVar9 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier)) )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" { (expression_statement "*(undefined1 *)(iVar9 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xc)" * (cast_expression "(undefined1 *)(iVar9 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" * (cast_expression "(undefined4 *)(iVar9 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) (if_statement "if (piVar24 == piVar26) goto LAB_000288f7;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_000288f7;" goto statement_identifier ;)) })) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" identifier = (binary_expression "piVar24 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 != piVar26)" ( (binary_expression "piVar24 != piVar26" identifier != identifier) )) ;) })) (labeled_statement "LAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" statement_identifier : (if_statement "if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" if (parenthesized_expression "(bVar19 != 2)" ( (binary_expression "bVar19 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" { (for_statement "for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" for ( (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" { (expression_statement "pcVar10 = (char *)*puVar13;" (assignment_expression "pcVar10 = (char *)*puVar13" identifier = (cast_expression "(char *)*puVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ;) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" identifier = (call_expression "strlen(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (expression_statement "pcVar11 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar7 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar7 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar7 + 10)" identifier (argument_list "(sVar7 + 10)" ( (binary_expression "sVar7 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar11,".startof.%s",pcVar10);" (call_expression "sprintf(pcVar11,".startof.%s",pcVar10)" identifier (argument_list "(pcVar11,".startof.%s",pcVar10)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "builtin_strncpy(pcVar11 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar11 + 1,".size",5)" identifier (argument_list "(pcVar11 + 1,".size",5)" ( (binary_expression "pcVar11 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier ))) ;) })) }))) (expression_statement "FUN_0002ffd0();" (call_expression "FUN_0002ffd0()" identifier (argument_list "()" ( ))) ;) (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 "local_4c = (void *)xmalloc(0x28);" (assignment_expression "local_4c = (void *)xmalloc(0x28)" identifier = (cast_expression "(void *)xmalloc(0x28)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (expression_statement "local_44 = 10;" (assignment_expression "local_44 = 10" identifier = number_literal) ;) (for_statement "for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" for ( (assignment_expression "puVar13 = DAT_00091bd8" identifier = identifier) ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)*puVar13" identifier = (cast_expression "(undefined4 *)*puVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar13" * identifier))) ) (compound_statement "{\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" { (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" for ( (assignment_expression "piVar26 = DAT_00091be0" identifier = identifier) ; (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar26 = (int *)piVar26[4]" identifier = (cast_expression "(int *)piVar26[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[4]" identifier [ number_literal ]))) ) (compound_statement "{\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < piVar26[0x12])" ( (binary_expression "-1 < piVar26[0x12]" number_literal < (subscript_expression "piVar26[0x12]" identifier [ number_literal ])) )) (compound_statement "{\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" { (expression_statement "piVar23 = (int *)piVar26[0xe];" (assignment_expression "piVar23 = (int *)piVar26[0xe]" identifier = (cast_expression "(int *)piVar26[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[0xe]" identifier [ number_literal ]))) ;) (if_statement "if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" if (parenthesized_expression "(piVar23 == (int *)0x0)" ( (binary_expression "piVar23 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }" { (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" if (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))))" ( (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" (parenthesized_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0))" ( (binary_expression "(piVar26[0x14] != 2) && (piVar26[7] != 0)" (parenthesized_expression "(piVar26[0x14] != 2)" ( (binary_expression "piVar26[0x14] != 2" (subscript_expression "piVar26[0x14]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar26[7] != 0)" ( (binary_expression "piVar26[7] != 0" (subscript_expression "piVar26[7]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" ( (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))" ( (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar26[7] + 0x14) & 1)" ( (binary_expression "*(byte *)(piVar26[7] + 0x14) & 1" (pointer_expression "*(byte *)(piVar26[7] + 0x14)" * (cast_expression "(byte *)(piVar26[7] + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[7] + 0x14)" ( (binary_expression "piVar26[7] + 0x14" (subscript_expression "piVar26[7]" identifier [ number_literal ]) + number_literal) )))) & number_literal) )) != number_literal) && (parenthesized_expression "(piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" ( (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar27 = piVar26" identifier = identifier) , (comma_expression "piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar23 = piVar24" identifier = identifier) , (binary_expression "puVar13[2] != 3" (subscript_expression "puVar13[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" { (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" { (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" identifier = identifier) ;) (if_statement "if (piVar23 != (int *)0x0) goto LAB_000289ba;" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000289ba;" goto statement_identifier ;)) (expression_statement "piVar27 = (int *)piVar27[4];" (assignment_expression "piVar27 = (int *)piVar27[4]" identifier = (cast_expression "(int *)piVar27[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[4]" identifier [ number_literal ]))) ;) (if_statement "if (piVar27 == (int *)0x0) break;" if (parenthesized_expression "(piVar27 == (int *)0x0)" ( (binary_expression "piVar27 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "piVar23 = (int *)piVar27[0xe];" (assignment_expression "piVar23 = (int *)piVar27[0xe]" identifier = (cast_expression "(int *)piVar27[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar27[0xe]" 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 "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" identifier (argument_list "(0,"%F%P: no sections assigned to phdrs\n",5)" ( number_literal , (string_literal ""%F%P: no sections assigned to phdrs\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) }) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" else (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" { (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" identifier = identifier) ;) (expression_statement "piVar27 = (int *)piVar26[7];" (assignment_expression "piVar27 = (int *)piVar26[7]" identifier = (cast_expression "(int *)piVar26[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[7]" identifier [ number_literal ]))) ;) (while_statement "while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" while (parenthesized_expression "(piVar27 != (int *)0x0)" ( (binary_expression "piVar27 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" { (labeled_statement "LAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" statement_identifier : (expression_statement "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" (assignment_expression "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1])" identifier = (call_expression "strcmp((char *)piVar23[1],(char *)puVar13[1])" identifier (argument_list "((char *)piVar23[1],(char *)puVar13[1])" ( (cast_expression "(char *)piVar23[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar13[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar21 = local_44;" (assignment_expression "uVar21 = local_44" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" { (if_statement "if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_50)" ( (binary_expression "local_44 <= local_50" identifier <= identifier) )) (compound_statement "{\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" { (expression_statement "uVar21 = local_44 * 2;" (assignment_expression "uVar21 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_4c = (void *)xrealloc(local_4c,local_44 << 3);" (assignment_expression "local_4c = (void *)xrealloc(local_4c,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_4c,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_4c,local_44 << 3)" identifier (argument_list "(local_4c,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_4c + (int)local_50 * 4)" * (cast_expression "(int *)((int)local_4c + (int)local_50 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_4c + (int)local_50 * 4)" ( (binary_expression "(int)local_4c + (int)local_50 * 4" (cast_expression "(int)local_4c" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_50 * 4" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "local_50 = (int *)((int)local_50 + 1);" (assignment_expression "local_50 = (int *)((int)local_50 + 1)" identifier = (cast_expression "(int *)((int)local_50 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_50 + 1)" ( (binary_expression "(int)local_50 + 1" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar23[2] = 1;" (assignment_expression "piVar23[2] = 1" (subscript_expression "piVar23[2]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "piVar23 = (int *)*piVar23;" (assignment_expression "piVar23 = (int *)*piVar23" identifier = (cast_expression "(int *)*piVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "local_44 = uVar21;" (assignment_expression "local_44 = uVar21" identifier = identifier) ;) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (if_statement "if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" if (parenthesized_expression "(puVar13[6] != 0)" ( (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" { (expression_statement "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");" (assignment_expression "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags")" identifier = (call_expression "FUN_0002fba0(puVar13[6],0,"phdr flags")" identifier (argument_list "(puVar13[6],0,"phdr flags")" ( (subscript_expression "puVar13[6]" identifier [ number_literal ]) , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" { (expression_statement "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");" (assignment_expression "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address")" identifier = (call_expression "FUN_0002fba0(iVar5,0,"phdr load address")" identifier (argument_list "(iVar5,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);" (assignment_expression "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" identifier = (call_expression "bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" identifier (argument_list "(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" ( identifier , (subscript_expression "puVar13[2]" identifier [ number_literal ]) , (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "iVar5 != 0" identifier != number_literal) , identifier , (subscript_expression "puVar13[3]" identifier [ number_literal ]) , (subscript_expression "puVar13[4]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" identifier (argument_list "(0,"%F%P: bfd_record_phdr failed: %E\n",5)" ( number_literal , (string_literal ""%F%P: bfd_record_phdr failed: %E\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) })) (expression_statement "free(local_4c);" (call_expression "free(local_4c)" identifier (argument_list "(local_4c)" ( identifier ))) ;) (for_statement "for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_00091be0" identifier = identifier) ; (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "piVar24 = (int *)piVar24[4]" identifier = (cast_expression "(int *)piVar24[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[4]" identifier [ number_literal ]))) ) (compound_statement "{\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < piVar24[0x12]) && (piVar24[7] != 0))" ( (binary_expression "(-1 < piVar24[0x12]) && (piVar24[7] != 0)" (parenthesized_expression "(-1 < piVar24[0x12])" ( (binary_expression "-1 < piVar24[0x12]" number_literal < (subscript_expression "piVar24[0x12]" identifier [ number_literal ])) )) && (parenthesized_expression "(piVar24[7] != 0)" ( (binary_expression "piVar24[7] != 0" (subscript_expression "piVar24[7]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "piVar26 = (int *)piVar24[0xe];" (assignment_expression "piVar26 = (int *)piVar24[0xe]" identifier = (cast_expression "(int *)piVar24[0xe]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[0xe]" identifier [ number_literal ]))) ;) (labeled_statement "joined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(piVar26 != (int *)0x0)" ( (binary_expression "piVar26 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" { (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" identifier = false) ;) (expression_statement "bVar32 = piVar26[2] == 0;" (assignment_expression "bVar32 = piVar26[2] == 0" identifier = (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" if (parenthesized_expression "(bVar32)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" { (expression_statement "pbVar3 = (byte *)piVar26[1];" (assignment_expression "pbVar3 = (byte *)piVar26[1]" identifier = (cast_expression "(byte *)piVar26[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar26[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" identifier = number_literal) ;) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar30 = (byte *)0x3d35d;" (assignment_expression "pbVar30 = (byte *)0x3d35d" identifier = (cast_expression "(byte *)0x3d35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" do (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" { (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" identifier = (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" * identifier) < (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" identifier = (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" * identifier) == (pointer_expression "*pbVar30" * identifier))) ;) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" identifier = (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" identifier + (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar32)" ( identifier )) ;) (if_statement "if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;" if (parenthesized_expression "((!bVar31 && !bVar32) != bVar31)" ( (binary_expression "(!bVar31 && !bVar32) != bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" ( (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" ! identifier) && (unary_expression "!bVar32" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00028b27;" goto statement_identifier ;)) })) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (if_statement "if (piVar26 == (int *)0x0) break;" if (parenthesized_expression "(piVar26 == (int *)0x0)" ( (binary_expression "piVar26 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) }))) })) })) (if_statement "if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2))" ( (binary_expression "((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)" (parenthesized_expression "((DAT_00091c20._3_1_ & 0x10) != 0)" ( (binary_expression "(DAT_00091c20._3_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 0x10)" ( (binary_expression "DAT_00091c20._3_1_ & 0x10" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" { (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "FUN_00025980();" (call_expression "FUN_00025980()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" if (parenthesized_expression "(local_20[0] == (char *)0x0)" ( (binary_expression "local_20[0] == (char *)0x0" (subscript_expression "local_20[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" { (expression_statement "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;" (assignment_expression "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) = (binary_expression "DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "FUN_00026140(0,1 < DAT_00091c34);" (call_expression "FUN_00026140(0,1 < DAT_00091c34)" identifier (argument_list "(0,1 < DAT_00091c34)" ( number_literal , (binary_expression "1 < DAT_00091c34" number_literal < identifier) ))) ;) (expression_statement "FUN_0002ffb0();" (call_expression "FUN_0002ffb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" identifier = identifier) ;) (expression_statement "uVar6 = DAT_0009180c;" (assignment_expression "uVar6 = DAT_0009180c" identifier = identifier) ;) (if_statement "if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "(DAT_000917c8 != 0)" ( (binary_expression "DAT_000917c8 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar24 = DAT_000917cc + DAT_000917c8;" (assignment_expression "piVar24 = DAT_000917cc + DAT_000917c8" identifier = (binary_expression "DAT_000917cc + DAT_000917c8" identifier + identifier)) ;) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" identifier = (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" identifier + number_literal)) ;) (expression_statement "piVar26 = DAT_000917cc;" (assignment_expression "piVar26 = DAT_000917cc" identifier = identifier) ;) (do_statement "do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    }" { (while_statement "while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" while (parenthesized_expression "(iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3)" ( (comma_expression "iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar9 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) , (binary_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff)" ( (binary_expression "*(ushort *)(iVar9 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar9 + 0xc)" * (cast_expression "(ushort *)(iVar9 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" { (expression_statement "pcVar10 = *(char **)(iVar9 + 4);" (assignment_expression "pcVar10 = *(char **)(iVar9 + 4)" identifier = (pointer_expression "*(char **)(iVar9 + 4)" * (cast_expression "(char **)(iVar9 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_4c._0_1_ = (byte)uVar6;" (assignment_expression "local_4c._0_1_ = (byte)uVar6" (field_expression "local_4c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar10 != '.')" ( (binary_expression "*pcVar10 != '.'" (pointer_expression "*pcVar10" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" { (expression_statement "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(iVar5 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(iVar5 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar5 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar5 + 4) + 0x18" (pointer_expression "*(int *)(iVar5 + 4)" * (cast_expression "(int *)(iVar5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar9 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" if (parenthesized_expression "(pcVar10[(cVar4 != '\0') + 4] == 'o')" ( (binary_expression "pcVar10[(cVar4 != '\0') + 4] == 'o'" (subscript_expression "pcVar10[(cVar4 != '\0') + 4]" identifier [ (binary_expression "(cVar4 != '\0') + 4" (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" { (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" * (cast_expression "(uint *)(iVar8 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24)" ( (binary_expression "iVar8 + 0x24" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar10[2] != 'i') break;" if (parenthesized_expression "(pcVar10[2] != 'i')" ( (binary_expression "pcVar10[2] != 'i'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" * (cast_expression "(uint *)(iVar9 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" * (cast_expression "(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x24)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x24" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) )))) >> (parenthesized_expression "((byte)local_4c & 0x1f)" ( (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "*(undefined **)(iVar9 + 0x14) = puVar15;" (assignment_expression "*(undefined **)(iVar9 + 0x14) = puVar15" (pointer_expression "*(undefined **)(iVar9 + 0x14)" * (cast_expression "(undefined **)(iVar9 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar24 == piVar26) goto LAB_00028c60;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_00028c60;" goto statement_identifier ;)) })) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 != piVar26)" ( (binary_expression "piVar24 != piVar26" identifier != identifier) )) ;) })) (labeled_statement "LAB_00028c60:\n  FUN_00024940(4);" statement_identifier : (expression_statement "FUN_00024940(4);" (call_expression "FUN_00024940(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00030010();" (call_expression "FUN_00030010()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0002fea0();" (call_expression "FUN_0002fea0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) (if_statement "if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" if (parenthesized_expression "(DAT_00091cd8 != '\0')" ( (binary_expression "DAT_00091cd8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" { (expression_statement "cVar4 = bfd_arch_bits_per_address(DAT_00091c50);" (assignment_expression "cVar4 = bfd_arch_bits_per_address(DAT_00091c50)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_00091c50)" identifier (argument_list "(DAT_00091c50)" ( identifier )))) ;) (expression_statement "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;" (assignment_expression "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1" identifier = (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2 - 1" (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2" (parenthesized_expression "(1 << (cVar4 - 1U & 0x1f))" ( (binary_expression "1 << (cVar4 - 1U & 0x1f)" number_literal << (parenthesized_expression "(cVar4 - 1U & 0x1f)" ( (binary_expression "cVar4 - 1U & 0x1f" (binary_expression "cVar4 - 1U" identifier - number_literal) & number_literal) ))) )) * number_literal) - number_literal)) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      }" { (if_statement "if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" if (parenthesized_expression "((*(byte *)(puVar13 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar13 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 1)" ( (binary_expression "*(byte *)(puVar13 + 5) & 1" (pointer_expression "*(byte *)(puVar13 + 5)" * (cast_expression "(byte *)(puVar13 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 5)" ( (binary_expression "puVar13 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" { (expression_statement "uVar22 = puVar13[7] + puVar13[9] & uVar21;" (assignment_expression "uVar22 = puVar13[7] + puVar13[9] & uVar21" identifier = (binary_expression "puVar13[7] + puVar13[9] & uVar21" (binary_expression "puVar13[7] + puVar13[9]" (subscript_expression "puVar13[7]" identifier [ number_literal ]) + (subscript_expression "puVar13[9]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22))" ( (binary_expression "(uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar13[7] & uVar21) <= uVar22)" ( (binary_expression "(puVar13[7] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[7] & uVar21)" ( (binary_expression "puVar13[7] & uVar21" (subscript_expression "puVar13[7]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (compound_statement "{\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar22 = puVar13[9] + puVar13[8] & uVar21;" (assignment_expression "uVar22 = puVar13[9] + puVar13[8] & uVar21" identifier = (binary_expression "puVar13[9] + puVar13[8] & uVar21" (binary_expression "puVar13[9] + puVar13[8]" (subscript_expression "puVar13[9]" identifier [ number_literal ]) + (subscript_expression "puVar13[8]" identifier [ number_literal ])) & identifier)) ;) (if_statement "if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;" if (parenthesized_expression "((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22))" ( (binary_expression "(uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) || (parenthesized_expression "((puVar13[8] & uVar21) <= uVar22)" ( (binary_expression "(puVar13[8] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[8] & uVar21)" ( (binary_expression "puVar13[8] & uVar21" (subscript_expression "puVar13[8]" identifier [ number_literal ]) & identifier) )) <= identifier) ))) )) (goto_statement "goto LAB_000296b0;" goto statement_identifier ;)) (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar10 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s LMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s LMA wraps around address space\n"" " string_content escape_sequence ")) ;) }) (else_clause "else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "pcVar10 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s VMA wraps around address space\n"" identifier = (string_literal ""%X%P: section %s VMA wraps around address space\n"" " string_content escape_sequence ")) ;) }))) (expression_statement "uVar12 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar10,5)" identifier = (call_expression "dcgettext(0,pcVar10,5)" identifier (argument_list "(0,pcVar10,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];" statement_identifier : (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_00091c50 + 0x68))" ( (binary_expression "1 < *(uint *)(DAT_00091c50 + 0x68)" number_literal < (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" * (cast_expression "(uint *)(DAT_00091c50 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" { (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" identifier = (cast_expression "(int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" identifier (argument_list "(*(uint *)(DAT_00091c50 + 0x68) << 3)" ( (binary_expression "*(uint *)(DAT_00091c50 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" * (cast_expression "(uint *)(DAT_00091c50 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x68)" ( (binary_expression "DAT_00091c50 + 0x68" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar5 = *(int *)(DAT_00091c50 + 0x60);" (assignment_expression "iVar5 = *(int *)(DAT_00091c50 + 0x60)" identifier = (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" * (cast_expression "(int *)(DAT_00091c50 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00091c50 + 0x60)" ( (binary_expression "DAT_00091c50 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" { (do_statement "do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);" do (compound_statement "{\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        }" { (if_statement "if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" if (parenthesized_expression "((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0))" ( (binary_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 1" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar5 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar5 + 0x14)" * (cast_expression "(uint *)(iVar5 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x14)" ( (binary_expression "iVar5 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" * (cast_expression "(int *)(iVar5 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x24)" ( (binary_expression "iVar5 + 0x24" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" { (expression_statement "iVar9 = uVar21 * 2;" (assignment_expression "iVar9 = uVar21 * 2" identifier = (binary_expression "uVar21 * 2" identifier * number_literal)) ;) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;) (expression_statement "piVar24[iVar9] = iVar5;" (assignment_expression "piVar24[iVar9] = iVar5" (subscript_expression "piVar24[iVar9]" identifier [ identifier ]) = identifier) ;) (expression_statement "(piVar24 + iVar9)[1] = 0;" (assignment_expression "(piVar24 + iVar9)[1] = 0" (subscript_expression "(piVar24 + iVar9)[1]" (parenthesized_expression "(piVar24 + iVar9)" ( (binary_expression "piVar24 + iVar9" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar5 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" if (parenthesized_expression "(1 < uVar21)" ( (binary_expression "1 < uVar21" number_literal < identifier) )) (compound_statement "{\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" { (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de50);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de50)" identifier (argument_list "(piVar24,uVar21,8,FUN_0001de50)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50 = (undefined4 *)0x0;" (assignment_expression "local_50 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (do_statement "do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);" do (compound_statement "{\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          }" { (expression_statement "puVar20 = (undefined4 *)*piVar26;" (assignment_expression "puVar20 = (undefined4 *)*piVar26" identifier = (cast_expression "(undefined4 *)*piVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (expression_statement "piVar23 = local_50;" (assignment_expression "piVar23 = local_50" identifier = identifier) ;) (expression_statement "puVar13 = local_48;" (assignment_expression "puVar13 = local_48" identifier = identifier) ;) (expression_statement "uVar22 = local_44;" (assignment_expression "uVar22 = local_44" identifier = identifier) ;) (if_statement "if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" if (parenthesized_expression "((*(byte *)(puVar20 + 5) & 2) != 0)" ( (binary_expression "(*(byte *)(puVar20 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar20 + 5) & 2)" ( (binary_expression "*(byte *)(puVar20 + 5) & 2" (pointer_expression "*(byte *)(puVar20 + 5)" * (cast_expression "(byte *)(puVar20 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" { (expression_statement "uVar22 = puVar20[8];" (assignment_expression "uVar22 = puVar20[8]" identifier = (subscript_expression "puVar20[8]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "(uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )) + (parenthesized_expression "((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar20[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar20[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "piVar23 = puVar20;" (assignment_expression "piVar23 = puVar20" identifier = identifier) ;) (if_statement "if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" if (parenthesized_expression "((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 )" ( (binary_expression "(local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))" (parenthesized_expression "(local_50 != (undefined4 *)0x0)" ( (binary_expression "local_50 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((uVar22 <= local_48 || (local_48 < local_44)))" ( (parenthesized_expression "(uVar22 <= local_48 || (local_48 < local_44))" ( (binary_expression "uVar22 <= local_48 || (local_48 < local_44)" (binary_expression "uVar22 <= local_48" identifier <= identifier) || (parenthesized_expression "(local_48 < local_44)" ( (binary_expression "local_48 < local_44" identifier < identifier) ))) )) ))) )) (compound_statement "{\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" { (expression_statement "uVar6 = *local_50;" (assignment_expression "uVar6 = *local_50" identifier = (pointer_expression "*local_50" * identifier)) ;) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" identifier = (call_expression "dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" identifier (argument_list "(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" ( number_literal , (string_literal ""%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);" (call_expression "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" identifier (argument_list "(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar26[1] = 1;" (assignment_expression "piVar26[1] = 1" (subscript_expression "piVar26[1]" identifier [ number_literal ]) = number_literal) ;) })) })) (expression_statement "local_44 = uVar22;" (assignment_expression "local_44 = uVar22" identifier = identifier) ;) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" identifier = identifier) ;) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" identifier = identifier) ;) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + uVar21 * 2 != piVar26)" ( (binary_expression "piVar24 + uVar21 * 2 != piVar26" (binary_expression "piVar24 + uVar21 * 2" identifier + (binary_expression "uVar21 * 2" identifier * number_literal)) != identifier) )) ;) (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de90);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de90)" identifier (argument_list "(piVar24,uVar21,8,FUN_0001de90)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)*piVar24;" (assignment_expression "puVar13 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" identifier = (cast_expression "(int *)puVar13[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" identifier = number_literal) ;) (expression_statement "uVar22 = (uint)piVar26;" (assignment_expression "uVar22 = (uint)piVar26" identifier = (cast_expression "(uint)piVar26" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (do_statement "do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);" do (compound_statement "{\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          }" { (expression_statement "iVar5 = uVar16 * 2;" (assignment_expression "iVar5 = uVar16 * 2" identifier = (binary_expression "uVar16 * 2" identifier * number_literal)) ;) (if_statement "if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;" if (parenthesized_expression "(*(uint *)(piVar24[iVar5] + 0x1c) == uVar22)" ( (binary_expression "*(uint *)(piVar24[iVar5] + 0x1c) == uVar22" (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" * (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[iVar5] + 0x1c)" ( (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" identifier [ identifier ]) + number_literal) )))) == identifier) )) (goto_statement "goto LAB_000298a2;" goto statement_identifier ;)) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" identifier = (binary_expression "uVar16 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);" (assignment_expression "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c)" identifier = (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" * (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[iVar5] + 0x1c)" ( (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" identifier [ identifier ]) + number_literal) ))))) ;) }) while (parenthesized_expression "(uVar16 != uVar21)" ( (binary_expression "uVar16 != uVar21" identifier != identifier) )) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" ( (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )) + (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (while_statement "while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" while (parenthesized_expression "(local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21)" ( (comma_expression "local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_48 = puVar13" identifier = identifier) , (comma_expression "local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_4c = pvVar1" identifier = identifier) , (comma_expression "local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_50 = piVar26" identifier = identifier) , (comma_expression "uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "uVar22 = uVar22 + 1" identifier = (binary_expression "uVar22 + 1" identifier + number_literal)) , (binary_expression "uVar22 != uVar21" identifier != identifier))))) )) (compound_statement "{\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" { (expression_statement "puVar13 = (undefined4 *)piVar24[uVar22 * 2];" (assignment_expression "puVar13 = (undefined4 *)piVar24[uVar22 * 2]" identifier = (cast_expression "(undefined4 *)piVar24[uVar22 * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[uVar22 * 2]" identifier [ (binary_expression "uVar22 * 2" identifier * number_literal) ]))) ;) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" identifier = (cast_expression "(int *)puVar13[7]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[7]" identifier [ number_literal ]))) ;) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" identifier = (cast_expression "(void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" ( (binary_expression "((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" ( (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )) + (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" ( (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar13[9]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" ( (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (if_statement "if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" if (parenthesized_expression "((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))" ( (binary_expression "(piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50)))" (parenthesized_expression "(piVar24[uVar22 * 2 + 1] == 0)" ( (binary_expression "piVar24[uVar22 * 2 + 1] == 0" (subscript_expression "piVar24[uVar22 * 2 + 1]" identifier [ (binary_expression "uVar22 * 2 + 1" (binary_expression "uVar22 * 2" identifier * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((piVar26 <= local_4c || (local_4c < local_50)))" ( (parenthesized_expression "(piVar26 <= local_4c || (local_4c < local_50))" ( (binary_expression "piVar26 <= local_4c || (local_4c < local_50)" (binary_expression "piVar26 <= local_4c" identifier <= identifier) || (parenthesized_expression "(local_4c < local_50)" ( (binary_expression "local_4c < local_50" identifier < identifier) ))) )) ))) )) (compound_statement "{\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = *local_48;" (assignment_expression "uVar12 = *local_48" identifier = (pointer_expression "*local_48" * identifier)) ;) (expression_statement "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" identifier = (call_expression "dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" identifier (argument_list "(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" ( number_literal , (string_literal ""%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);" (call_expression "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" identifier (argument_list "(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_000298a2:\n          free(piVar24);" statement_identifier : (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;)) (for_statement "for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" for ( (assignment_expression "puVar20 = DAT_000917ec" identifier = identifier) ; (comma_expression "puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) , (binary_expression "puVar20 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar20 = (undefined4 *)puVar20[2]" identifier = (cast_expression "(undefined4 *)puVar20[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" { (if_statement "if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" if (parenthesized_expression "(puVar20[0xb] != 0)" ( (binary_expression "puVar20[0xb] != 0" (subscript_expression "puVar20[0xb]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" { (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);" (assignment_expression "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4])" identifier = (binary_expression "puVar20[7] - (puVar20[5] + puVar20[4])" (subscript_expression "puVar20[7]" identifier [ number_literal ]) - (parenthesized_expression "(puVar20[5] + puVar20[4])" ( (binary_expression "puVar20[5] + puVar20[4]" (subscript_expression "puVar20[5]" identifier [ number_literal ]) + (subscript_expression "puVar20[4]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);" (assignment_expression "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" identifier = (call_expression "dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" ( number_literal , (string_literal ""%X%P: region `%s\' overflowed by %lu byte\n"" " string_content escape_sequence string_content escape_sequence ") , (string_literal ""%X%P: region `%s\' overflowed by %lu bytes\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6,iVar5);" (call_expression "FUN_00031760(uVar12,uVar6,iVar5)" identifier (argument_list "(uVar12,uVar6,iVar5)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x00028c93;" goto statement_identifier ;) })) })) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" statement_identifier : (for_statement "for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" for ( ; (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar13 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" { (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" identifier (argument_list "(DAT_00091c3c,*puVar13,0,0,1)" ( identifier , (pointer_expression "*puVar13" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" if (parenthesized_expression "((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)))" ( (binary_expression "(iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar5 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar5 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar5 + 0xc) - 3U" (pointer_expression "*(char *)(iVar5 + 0xc)" * (cast_expression "(char *)(iVar5 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" { (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" identifier (argument_list "(0,"%X%P: required symbol `%s\' not defined\n",5)" ( number_literal , (string_literal ""%X%P: required symbol `%s\' not defined\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar5 = DAT_00091bbc;" (assignment_expression "iVar5 = DAT_00091bbc" identifier = identifier) ;) (if_statement "if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }" if (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3))" ( (binary_expression "(((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) != 2)" ( (binary_expression "((byte)DAT_00091c20 & 0x43) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" ( (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 3)" ( (binary_expression "((byte)DAT_00091c20 & 3) != 3" (parenthesized_expression "((byte)DAT_00091c20 & 3)" ( (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar5 = 1;\n  }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) })) (if_statement "if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" if (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0))" ( (binary_expression "(((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) == 0x42)" ( (binary_expression "((byte)DAT_00091c20 & 0x43) == 0x42" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" ( (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_00091bbc == 0 && DAT_00091bb8 == 0)" ( (binary_expression "DAT_00091bbc == 0 && DAT_00091bb8 == 0" (binary_expression "DAT_00091bbc == 0" identifier == number_literal) && (binary_expression "DAT_00091bb8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" { (expression_statement "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" identifier (argument_list "(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" ( number_literal , (string_literal ""%F%P: gc-sections requires either an entry or an undefined symbol\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) })) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" if (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" ( (binary_expression "DAT_00091798 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" { (expression_statement "DAT_00091798 = PTR_s_start_00091360;" (assignment_expression "DAT_00091798 = PTR_s_start_00091360" identifier = identifier) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) })) (expression_statement "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);" (assignment_expression "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" identifier (argument_list "(DAT_00091c3c,DAT_00091798,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" if (parenthesized_expression "((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar9 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar9 + 0xc) - 3U" (pointer_expression "*(char *)(iVar9 + 0xc)" * (cast_expression "(char *)(iVar9 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xc)" ( (binary_expression "iVar9 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" { (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" { (expression_statement "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));" (assignment_expression "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" identifier (argument_list "(DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" ( identifier , (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38)" * (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x38)" ( (binary_expression "*(int *)(iVar9 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) + number_literal) )))) + (pointer_expression "*(int *)(iVar9 + 0x18)" * (cast_expression "(int *)(iVar9 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x18)" ( (binary_expression "iVar9 + 0x18" identifier + number_literal) ))))) + (pointer_expression "*(int *)(iVar8 + 0x1c)" * (cast_expression "(int *)(iVar8 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x1c)" ( (binary_expression "iVar8 + 0x1c" identifier + number_literal) ))))) )))) ;) (if_statement "if (iVar5 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar10 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar10 = "%F%P: %s: can\'t set start address\n"" identifier = (string_literal ""%F%P: %s: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ")) ;) (goto_statement "goto LAB_000290ef;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);" (assignment_expression "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0)" identifier = (call_expression "bfd_scan_vma(DAT_00091798,local_20,0)" identifier (argument_list "(DAT_00091798,local_20,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" if (parenthesized_expression "(*local_20[0] != '\0')" ( (binary_expression "*local_20[0] != '\0'" (pointer_expression "*local_20[0]" * (subscript_expression "local_20[0]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" { (expression_statement "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);" (assignment_expression "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" identifier = (call_expression "bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" identifier (argument_list "(DAT_00091c50,PTR_s__text_00091354)" ( identifier , identifier )))) ;) (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" identifier = identifier) ;) (if_statement "if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" { (if_statement "if (iVar5 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" identifier = (string_literal ""%P: warning: cannot find entry symbol %s; not setting start address\n"" " string_content escape_sequence ")) ;) (labeled_statement "LAB_000290ef:\n      puVar15 = DAT_00091798;" statement_identifier : (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" identifier = identifier) ;)) (expression_statement "uVar6 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar10,5)" identifier = (call_expression "dcgettext(0,pcVar10,5)" identifier (argument_list "(0,pcVar10,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,puVar15);" (call_expression "FUN_00031760(uVar6,puVar15)" identifier (argument_list "(uVar6,puVar15)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" { (expression_statement "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" identifier = (call_expression "dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" identifier (argument_list "(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" ( number_literal , (string_literal ""%P: warning: cannot find entry symbol %s; defaulting to %V\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,puVar15,uVar6);" (call_expression "FUN_00031760(uVar12,puVar15,uVar6)" identifier (argument_list "(uVar12,puVar15,uVar6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" * (cast_expression "(undefined4 *)(iVar9 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x1c)" ( (binary_expression "iVar9 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);" (assignment_expression "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6)" identifier = (call_expression "bfd_set_start_address(DAT_00091c50,uVar6)" identifier (argument_list "(DAT_00091c50,uVar6)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: can\'t set start address\n",5)" identifier (argument_list "(0,"%F%P: can\'t set start address\n",5)" ( number_literal , (string_literal ""%F%P: can\'t set start address\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" identifier (argument_list "(uVar6)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "code_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];" statement_identifier : (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" identifier = (cast_expression "(int *)piVar24[6]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[6]" identifier [ number_literal ]))) ;)) (goto_statement "goto joined_r0x0002800a;" goto statement_identifier ;) (labeled_statement "LAB_000283a0:\n  uVar6 = *puVar13;" statement_identifier : (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;)) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" identifier (argument_list "(0,"%F%P: invalid length for memory region %s\n",5)" ( number_literal , (string_literal ""%F%P: invalid length for memory region %s\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" identifier (argument_list "(uVar12,uVar6)" ( identifier , identifier ))) ;) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028237;" goto statement_identifier ;) (labeled_statement "code_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" statement_identifier : (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))" ( (pointer_expression "**(code **)(*(int *)(piVar24[4] + 4) + 0x170)" * (pointer_expression "*(code **)(*(int *)(piVar24[4] + 4) + 0x170)" * (cast_expression "(code **)(*(int *)(piVar24[4] + 4) + 0x170)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(piVar24[4] + 4) + 0x170)" ( (binary_expression "*(int *)(piVar24[4] + 4) + 0x170" (pointer_expression "*(int *)(piVar24[4] + 4)" * (cast_expression "(int *)(piVar24[4] + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[4] + 4)" ( (binary_expression "piVar24[4] + 4" (subscript_expression "piVar24[4]" identifier [ number_literal ]) + number_literal) )))) + number_literal) ))))) )) (argument_list "(puVar13,&DAT_00091c20)" ( identifier , (pointer_expression "&DAT_00091c20" & identifier) ))) ;)) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" identifier = (cast_expression "(undefined4 *)puVar13[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[3]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028684;" goto statement_identifier ;) (labeled_statement "code_r0x00028b27:\n  iVar5 = piVar24[6];" statement_identifier : (expression_statement "iVar5 = piVar24[6];" (assignment_expression "iVar5 = piVar24[6]" identifier = (subscript_expression "piVar24[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier = (call_expression "dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" identifier (argument_list "(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" ( number_literal , (string_literal ""%X%P: section `%s\' assigned to non-existent phdr `%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00031760(uVar6,iVar5,pbVar3);" (call_expression "FUN_00031760(uVar6,iVar5,pbVar3)" identifier (argument_list "(uVar6,iVar5,pbVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" identifier = (cast_expression "(int *)*piVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) ;) (goto_statement "goto joined_r0x00028aeb;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (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 (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 IDENT ;) (declaration TYPE 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 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 (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE 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 (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (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 ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = 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 (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (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 = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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 { (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 { (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) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT) != (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) (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)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (while_statement while (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 != (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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)) )) (goto_statement goto statement_identifier ;)) })) (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 *)) ) (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (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 = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = (pointer_expression * IDENT)) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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) )) && (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) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (labeled_statement statement_identifier : (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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) ))))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (while_statement while (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 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 IDENT == LIT) )) (break_statement break ;)) (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 IDENT + LIT) )))) + LIT) ))))) ;) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (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 IDENT + LIT) )))) + LIT) )))) = (binary_expression IDENT + LIT)) ;) })) }))) })) })) })) (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 ( (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = 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 ( ))) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) ))) )) (compound_statement { (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_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 IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;))) (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 )))) ;) })) (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 IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (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 escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (string_literal " string_content ") )))) , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , LIT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (for_statement for ( ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_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 = (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , LIT , LIT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 * (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression 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 IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (for_statement for ( (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 != (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 { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )))) ))) , (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (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)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (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 (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 { (for_statement for ( (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) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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 (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)) ;) })) })) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (binary_expression LIT - (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression LIT - (subscript_expression IDENT [ LIT ]))) ;) })) }))) }) (else_clause else (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 = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) )) (compound_statement { (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression LIT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_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 (subscript_expression IDENT [ LIT ]) = (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 IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression LIT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ 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) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_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)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (if_statement if (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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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 IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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 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) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (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 ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (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) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) || (parenthesized_expression ( (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 ( (string_literal " string_content ") , LIT , LIT )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , IDENT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , 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 ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (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 escape_sequence ") , LIT )))) ;) (expression_statement (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 ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , 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 ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 IDENT + LIT) )))) & LIT) )) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT , LIT , 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 IDENT + LIT) ))))) ;) (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 escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) })) }))))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) })) (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)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (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 = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) })) (for_statement for ( ; (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 *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_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 (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = 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 != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ 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 (subscript_expression IDENT [ LIT ]) != IDENT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (for_statement for ( (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 != (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (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 { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_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 = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT))) ))) )) ))) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (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 IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (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 , (binary_expression IDENT << LIT) ))))) ;) })) (expression_statement (assignment_expression (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)) )))) = (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) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , (string_literal " string_content ") )))) ;) })) (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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) , IDENT , (binary_expression IDENT != LIT) , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , 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 )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (for_statement for ( (assignment_expression IDENT = IDENT) ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ;) (if_statement if (parenthesized_expression ( 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 = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (field_expression IDENT . field_identifier) & LIT)) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression LIT < IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (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 IDENT + LIT) )))) + 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 IDENT + LIT) )))) + LIT) ))))) ;) (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 (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) + LIT) ]) == (char_literal ' character ')) )) (compound_statement { (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) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) })) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) >> (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) * LIT) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT) )) <= IDENT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * 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 ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (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) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (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) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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 (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (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 (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (do_statement do (compound_statement { (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 [ IDENT ]) + LIT) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 [ IDENT ]) + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) )))) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != IDENT))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_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 *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( 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 *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (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_literal " string_content escape_sequence string_content escape_sequence ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) })) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (for_statement for ( ; (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression LIT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) )))) ))) )) (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 escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) ))) < LIT) ))) )) (compound_statement { (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 IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (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 IDENT + LIT) )))) + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (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 , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (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 ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (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 (subscript_expression IDENT [ LIT ]) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (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 escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_00027e10(void)\n\n{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" (primitive_type "void") (function_declarator "FUN_00027e10(void)" (identifier "FUN_00027e10") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  void *pvVar1;\n  byte bVar2;\n  byte *pbVar3;\n  char cVar4;\n  int iVar5;\n  undefined4 uVar6;\n  size_t sVar7;\n  int iVar8;\n  int iVar9;\n  char *pcVar10;\n  char *pcVar11;\n  undefined4 uVar12;\n  undefined4 *puVar13;\n  int *piVar14;\n  undefined *puVar15;\n  uint uVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte bVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  uint uVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  int *piVar29;\n  byte *pbVar30;\n  bool bVar31;\n  bool bVar32;\n  byte bVar33;\n  int *local_50;\n  void *local_4c;\n  undefined4 *local_48;\n  uint local_44;\n  int local_40;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar33 = 0;\n  uStack_14 = 0x27e19;\n  if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }\n  DAT_00091850 = DAT_00091d88;\n  FUN_000216f0(FUN_00024300,DAT_00091848);\n  FUN_0001f200();\n  FUN_00030060();\n  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }\n  iVar5 = bfd_section_already_linked_table_init();\n  if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }\n  DAT_00091780 = DAT_00091780 + 1;\n  DAT_00091850 = DAT_00091d88;\n  FUN_00025a30();\n  piVar27 = DAT_00091bc8;\n  piVar23 = DAT_00091bc4;\n  piVar26 = DAT_000917a0;\n  piVar24 = DAT_0009179c;\n  if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00091c64 = &DAT_00091794;\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }\n  if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }\n  if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }\n  FUN_0002ff70();\n  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  piVar24 = DAT_0009179c;\njoined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }\n  if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }\n  FUN_0002ad40();\n  puVar15 = PTR__sch_istable_00090fa8;\n  if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }\n  FUN_00024940(1);\n  puVar13 = DAT_000917ec;\njoined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00091da0 = 0;\n  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }\n  FUN_00025560();\n  bVar19 = (byte)DAT_00091c20;\n  piVar24 = DAT_0009179c;\n  if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }\n  iVar5 = DAT_00091c58;\n  if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }\n  FUN_0002ff90();\n  piVar26 = (int *)0x0;\n  FUN_0001e040();\n  DAT_00091780 = DAT_00091780 + 1;\n  FUN_00025680();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00091be0;\n  if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }\n  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar19 = (byte)DAT_00091c20 & 3;\n  piVar24 = DAT_000917cc;\n  piVar26 = DAT_00091be0;\n  iVar5 = DAT_00091c50;\n  if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }\n  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }\n  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }\n  FUN_0002ffd0();\n  piVar24 = (int *)0x0;\n  local_4c = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }\n  free(local_4c);\n  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }\n  FUN_00026140(0,1 < DAT_00091c34);\n  FUN_0002ffb0();\n  iVar5 = DAT_00091c50;\n  uVar6 = DAT_0009180c;\n  if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00028c60:\n  FUN_00024940(4);\n  FUN_00030010();\n  FUN_0002fea0();\n  puVar13 = DAT_000917dc;\n  if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }\njoined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }\n  iVar5 = DAT_00091bbc;\n  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }\n  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }\n  if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }\n  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);\n  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }\n  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }\n  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);\n  if (iVar5 != 0) {\n    return;\n  }\n  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00031760(uVar6);\n  return;\ncode_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];\n  goto joined_r0x0002800a;\nLAB_000283a0:\n  uVar6 = *puVar13;\n  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00031760(uVar12,uVar6);\n  puVar13 = (undefined4 *)puVar13[2];\n  goto joined_r0x00028237;\ncode_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);\n  puVar13 = (undefined4 *)puVar13[3];\n  goto joined_r0x00028684;\ncode_r0x00028b27:\n  iVar5 = piVar24[6];\n  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00031760(uVar6,iVar5,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x00028aeb;\n}" ({ "{") (declaration "void *pvVar1;" (primitive_type "void") (pointer_declarator "*pvVar1" (* "*") (identifier "pvVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "int *piVar26;" (primitive_type "int") (pointer_declarator "*piVar26" (* "*") (identifier "piVar26")) (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "int *piVar29;" (primitive_type "int") (pointer_declarator "*piVar29" (* "*") (identifier "piVar29")) (; ";")) (declaration "byte *pbVar30;" (type_identifier "byte") (pointer_declarator "*pbVar30" (* "*") (identifier "pbVar30")) (; ";")) (declaration "bool bVar31;" (primitive_type "bool") (identifier "bVar31") (; ";")) (declaration "bool bVar32;" (primitive_type "bool") (identifier "bVar32") (; ";")) (declaration "byte bVar33;" (type_identifier "byte") (identifier "bVar33") (; ";")) (declaration "int *local_50;" (primitive_type "int") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "void *local_4c;" (primitive_type "void") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined4 *local_48;" (type_identifier "undefined4") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "char *local_20 [3];" (primitive_type "char") (pointer_declarator "*local_20 [3]" (* "*") (array_declarator "local_20 [3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar33 = 0;" (assignment_expression "bVar33 = 0" (identifier "bVar33") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x27e19;" (assignment_expression "uStack_14 = 0x27e19" (identifier "uStack_14") (= "=") (number_literal "0x27e19")) (; ";")) (if_statement "if (DAT_00091ca0 != 0) {\n    FUN_0001e950();\n  }" (if "if") (parenthesized_expression "(DAT_00091ca0 != 0)" (( "(") (binary_expression "DAT_00091ca0 != 0" (identifier "DAT_00091ca0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0001e950();\n  }" ({ "{") (expression_statement "FUN_0001e950();" (call_expression "FUN_0001e950()" (identifier "FUN_0001e950") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" (identifier "DAT_00091850") (= "=") (identifier "DAT_00091d88")) (; ";")) (expression_statement "FUN_000216f0(FUN_00024300,DAT_00091848);" (call_expression "FUN_000216f0(FUN_00024300,DAT_00091848)" (identifier "FUN_000216f0") (argument_list "(FUN_00024300,DAT_00091848)" (( "(") (identifier "FUN_00024300") (, ",") (identifier "DAT_00091848") () ")"))) (; ";")) (expression_statement "FUN_0001f200();" (call_expression "FUN_0001f200()" (identifier "FUN_0001f200") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00030060();" (call_expression "FUN_00030060()" (identifier "FUN_00030060") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    FUN_0001e720();\n  }" (for "for") (( "(") (assignment_expression "puVar13 = DAT_00091794" (identifier "puVar13") (= "=") (identifier "DAT_00091794")) (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)*puVar13" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) () ")") (compound_statement "{\n    FUN_0001e720();\n  }" ({ "{") (expression_statement "FUN_0001e720();" (call_expression "FUN_0001e720()" (identifier "FUN_0001e720") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = bfd_section_already_linked_table_init();" (assignment_expression "iVar5 = bfd_section_already_linked_table_init()" (identifier "iVar5") (= "=") (call_expression "bfd_section_already_linked_table_init()" (identifier "bfd_section_already_linked_table_init") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00031760(uVar6);\n  }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: can not create hash table: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: can not create hash table: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: can not create hash table: %E\n"" (" """) (string_content "%F%P: can not create hash table: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" (identifier "FUN_00031760") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" (identifier "DAT_00091780") (= "=") (binary_expression "DAT_00091780 + 1" (identifier "DAT_00091780") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_00091850 = DAT_00091d88;" (assignment_expression "DAT_00091850 = DAT_00091d88" (identifier "DAT_00091850") (= "=") (identifier "DAT_00091d88")) (; ";")) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" (identifier "FUN_00025a30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar27 = DAT_00091bc8;" (assignment_expression "piVar27 = DAT_00091bc8" (identifier "piVar27") (= "=") (identifier "DAT_00091bc8")) (; ";")) (expression_statement "piVar23 = DAT_00091bc4;" (assignment_expression "piVar23 = DAT_00091bc4" (identifier "piVar23") (= "=") (identifier "DAT_00091bc4")) (; ";")) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" (identifier "piVar26") (= "=") (identifier "DAT_000917a0")) (; ";")) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";")) (if_statement "if ((DAT_00091c20._1_1_ & 2) != 0) {\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00091c20._1_1_ & 2) != 0)" (( "(") (binary_expression "(DAT_00091c20._1_1_ & 2) != 0" (parenthesized_expression "(DAT_00091c20._1_1_ & 2)" (( "(") (binary_expression "DAT_00091c20._1_1_ & 2" (field_expression "DAT_00091c20._1_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)PTR_DAT_00091358;\n    piVar29 = *(int **)(PTR_DAT_00091358 + 4);\n    iVar9 = FUN_000351f0();\n    if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n    FUN_00025a30();\n    puVar15 = PTR_DAT_00091358;\n    if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar14 = *(int **)(puVar15 + 4);\n    iVar5 = *piVar29;\n    *(int **)(puVar15 + 4) = piVar29;\n    *piVar29 = 0;\n    if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar29 = DAT_000917a0;\n    piVar24 = (int *)*piVar26;\n    DAT_000917a0 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00091bc8;\n    iVar9 = *piVar27;\n    DAT_00091bc8 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_0009179c;\n    piVar27 = DAT_00091bc4;\n    if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar5 = *(int *)PTR_DAT_00091358;" (assignment_expression "iVar5 = *(int *)PTR_DAT_00091358" (identifier "iVar5") (= "=") (pointer_expression "*(int *)PTR_DAT_00091358" (* "*") (cast_expression "(int *)PTR_DAT_00091358" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00091358")))) (; ";")) (expression_statement "piVar29 = *(int **)(PTR_DAT_00091358 + 4);" (assignment_expression "piVar29 = *(int **)(PTR_DAT_00091358 + 4)" (identifier "piVar29") (= "=") (pointer_expression "*(int **)(PTR_DAT_00091358 + 4)" (* "*") (cast_expression "(int **)(PTR_DAT_00091358 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_00091358 + 4)" (( "(") (binary_expression "PTR_DAT_00091358 + 4" (identifier "PTR_DAT_00091358") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar9 = FUN_000351f0();" (assignment_expression "iVar9 = FUN_000351f0()" (identifier "iVar9") (= "=") (call_expression "FUN_000351f0()" (identifier "FUN_000351f0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = FUN_00034b60();\n      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" ({ "{") (expression_statement "uVar6 = FUN_00034b60();" (assignment_expression "uVar6 = FUN_00034b60()" (identifier "uVar6") (= "=") (call_expression "FUN_00034b60()" (identifier "FUN_00034b60") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s: plugin reported error after all symbols read\n"" (" """) (string_content "%F%P: %s: plugin reported error after all symbols read") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" (identifier "FUN_00025a30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" (identifier "puVar15") (= "=") (identifier "PTR_DAT_00091358")) (; ";")) (if_statement "if (*(int *)PTR_DAT_00091358 != iVar5) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_DAT_00091358 != iVar5)" (( "(") (binary_expression "*(int *)PTR_DAT_00091358 != iVar5" (pointer_expression "*(int *)PTR_DAT_00091358" (* "*") (cast_expression "(int *)PTR_DAT_00091358" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00091358"))) (!= "!=") (identifier "iVar5")) () ")")) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar14 = *(int **)(puVar15 + 4);" (assignment_expression "piVar14 = *(int **)(puVar15 + 4)" (identifier "piVar14") (= "=") (pointer_expression "*(int **)(puVar15 + 4)" (* "*") (cast_expression "(int **)(puVar15 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar5 = *piVar29;" (assignment_expression "iVar5 = *piVar29" (identifier "iVar5") (= "=") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))) (; ";")) (expression_statement "*(int **)(puVar15 + 4) = piVar29;" (assignment_expression "*(int **)(puVar15 + 4) = piVar29" (pointer_expression "*(int **)(puVar15 + 4)" (* "*") (cast_expression "(int **)(puVar15 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar29")) (; ";")) (expression_statement "*piVar29 = 0;" (assignment_expression "*piVar29 = 0" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_0009179c != piVar24) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_0009179c != piVar24)" (( "(") (binary_expression "DAT_0009179c != piVar24" (identifier "DAT_0009179c") (!= "!=") (identifier "piVar24")) () ")")) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" (identifier "piVar29") (= "=") (identifier "DAT_000917a0")) (; ";")) (expression_statement "piVar24 = (int *)*piVar26;" (assignment_expression "piVar24 = (int *)*piVar26" (identifier "piVar24") (= "=") (cast_expression "(int *)*piVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")))) (; ";")) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" (identifier "DAT_000917a0") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00091bc4 != piVar23) {\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_00091bc4 != piVar23)" (( "(") (binary_expression "DAT_00091bc4 != piVar23" (identifier "DAT_00091bc4") (!= "!=") (identifier "piVar23")) () ")")) (compound_statement "{\n      FUN_000317b0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar23 = DAT_00091bc8;" (assignment_expression "piVar23 = DAT_00091bc8" (identifier "piVar23") (= "=") (identifier "DAT_00091bc8")) (; ";")) (expression_statement "iVar9 = *piVar27;" (assignment_expression "iVar9 = *piVar27" (identifier "iVar9") (= "=") (pointer_expression "*piVar27" (* "*") (identifier "piVar27"))) (; ";")) (expression_statement "DAT_00091bc8 = piVar27;" (assignment_expression "DAT_00091bc8 = piVar27" (identifier "DAT_00091bc8") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar26 = DAT_0009179c;" (assignment_expression "piVar26 = DAT_0009179c" (identifier "piVar26") (= "=") (identifier "DAT_0009179c")) (; ";")) (expression_statement "piVar27 = DAT_00091bc4;" (assignment_expression "piVar27 = DAT_00091bc4" (identifier "piVar27") (= "=") (identifier "DAT_00091bc4")) (; ";")) (if_statement "if (iVar5 != 0) {\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }\n      piVar26 = DAT_000917e0;\n      if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }\nLAB_00029491:\n      DAT_000917e0 = piVar26;\n      piVar26 = DAT_000917e0;\n      puVar15 = PTR_DAT_00091358;\n      *piVar14 = *DAT_000917e0;\n      *piVar26 = iVar5;\n      if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar9;\n      piVar27 = DAT_000917a0;\n      if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      DAT_000917a0 = piVar29;\n      piVar26 = DAT_000917a0;\n      piVar24 = DAT_0009179c;\n      DAT_00091780 = DAT_00091780 + 1;\n      FUN_00025a30();\n      if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar5 = *piVar26;\n      DAT_000917a0 = piVar26;\n      *piVar26 = 0;\n      while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }\n    }" ({ "{") (for_statement "for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" (for "for") (( "(") (; ";") (comma_expression "DAT_000917e0 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_000917e0 = piVar27" (identifier "DAT_000917e0") (= "=") (identifier "piVar27")) (, ",") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "piVar26 = (int *)piVar26[6]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[6]" (identifier "piVar26") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }\n        piVar27 = DAT_000917e0;\n      }" ({ "{") (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20) != 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x20)" (( "(") (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" (* "*") (cast_expression "(byte *)((int)piVar26 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar26 + 0x25)" (( "(") (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar26")) (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;\n          break;\n        }" ({ "{") (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;" (if "if") (parenthesized_expression "((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)((int)piVar26 + 0x25) & 0x40)" (( "(") (binary_expression "*(byte *)((int)piVar26 + 0x25) & 0x40" (pointer_expression "*(byte *)((int)piVar26 + 0x25)" (* "*") (cast_expression "(byte *)((int)piVar26 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar26 + 0x25)" (( "(") (binary_expression "(int)piVar26 + 0x25" (cast_expression "(int)piVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar26")) (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029491;" (goto "goto") (statement_identifier "LAB_00029491") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {\n          DAT_000917e0 = piVar26;\n        }" (if "if") (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0))" (( "(") (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)" (parenthesized_expression "(piVar26[4] != 0)" (( "(") (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(piVar26[4] + 0x88) == 0)" (( "(") (binary_expression "*(int *)(piVar26[4] + 0x88) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x88)" (* "*") (cast_expression "(int *)(piVar26[4] + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar26[4] + 0x88)" (( "(") (binary_expression "piVar26[4] + 0x88" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x88")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          DAT_000917e0 = piVar26;\n        }" ({ "{") (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" (identifier "DAT_000917e0") (= "=") (identifier "piVar26")) (; ";")) (} "}"))) (expression_statement "piVar27 = DAT_000917e0;" (assignment_expression "piVar27 = DAT_000917e0" (identifier "piVar27") (= "=") (identifier "DAT_000917e0")) (; ";")) (} "}"))) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" (identifier "piVar26") (= "=") (identifier "DAT_000917e0")) (; ";")) (if_statement "if (DAT_000917e0 == (int *)0x0) {\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" (if "if") (parenthesized_expression "(DAT_000917e0 == (int *)0x0)" (( "(") (binary_expression "DAT_000917e0 == (int *)0x0" (identifier "DAT_000917e0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_000917e0;\n      }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c32)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1c32)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c32") () ")"))) (; ";")) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" (identifier "piVar26") (= "=") (identifier "DAT_000917e0")) (; ";")) (} "}"))) (labeled_statement "LAB_00029491:\n      DAT_000917e0 = piVar26;" (statement_identifier "LAB_00029491") (: ":") (expression_statement "DAT_000917e0 = piVar26;" (assignment_expression "DAT_000917e0 = piVar26" (identifier "DAT_000917e0") (= "=") (identifier "piVar26")) (; ";"))) (expression_statement "piVar26 = DAT_000917e0;" (assignment_expression "piVar26 = DAT_000917e0" (identifier "piVar26") (= "=") (identifier "DAT_000917e0")) (; ";")) (expression_statement "puVar15 = PTR_DAT_00091358;" (assignment_expression "puVar15 = PTR_DAT_00091358" (identifier "puVar15") (= "=") (identifier "PTR_DAT_00091358")) (; ";")) (expression_statement "*piVar14 = *DAT_000917e0;" (assignment_expression "*piVar14 = *DAT_000917e0" (pointer_expression "*piVar14" (* "*") (identifier "piVar14")) (= "=") (pointer_expression "*DAT_000917e0" (* "*") (identifier "DAT_000917e0"))) (; ";")) (expression_statement "*piVar26 = iVar5;" (assignment_expression "*piVar26 = iVar5" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (piVar26 == *(int **)(puVar15 + 4)) {\n        *(int **)(puVar15 + 4) = piVar14;\n      }" (if "if") (parenthesized_expression "(piVar26 == *(int **)(puVar15 + 4))" (( "(") (binary_expression "piVar26 == *(int **)(puVar15 + 4)" (identifier "piVar26") (== "==") (pointer_expression "*(int **)(puVar15 + 4)" (* "*") (cast_expression "(int **)(puVar15 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n        *(int **)(puVar15 + 4) = piVar14;\n      }" ({ "{") (expression_statement "*(int **)(puVar15 + 4) = piVar14;" (assignment_expression "*(int **)(puVar15 + 4) = piVar14" (pointer_expression "*(int **)(puVar15 + 4)" (* "*") (cast_expression "(int **)(puVar15 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + 4)" (( "(") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar14")) (; ";")) (} "}"))) (expression_statement "*piVar23 = piVar26[7];" (assignment_expression "*piVar23 = piVar26[7]" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "piVar26[7] = iVar9;" (assignment_expression "piVar26[7] = iVar9" (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar27 = DAT_000917a0;" (assignment_expression "piVar27 = DAT_000917a0" (identifier "piVar27") (= "=") (identifier "DAT_000917a0")) (; ";")) (if_statement "if (DAT_00091bc8 == piVar26 + 7) {\n        DAT_00091bc8 = piVar23;\n      }" (if "if") (parenthesized_expression "(DAT_00091bc8 == piVar26 + 7)" (( "(") (binary_expression "DAT_00091bc8 == piVar26 + 7" (identifier "DAT_00091bc8") (== "==") (binary_expression "piVar26 + 7" (identifier "piVar26") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n        DAT_00091bc8 = piVar23;\n      }" ({ "{") (expression_statement "DAT_00091bc8 = piVar23;" (assignment_expression "DAT_00091bc8 = piVar23" (identifier "DAT_00091bc8") (= "=") (identifier "piVar23")) (; ";")) (} "}"))) (if_statement "if (piVar26[2] == 0) {\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }\n      else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" (if "if") (parenthesized_expression "(piVar26[2] == 0)" (( "(") (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" (identifier "piVar26") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *piVar29 = (int)DAT_0009179c;\n        DAT_0009179c = piVar24;\n        if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }\n      }" ({ "{") (expression_statement "*piVar29 = (int)DAT_0009179c;" (assignment_expression "*piVar29 = (int)DAT_0009179c" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (= "=") (cast_expression "(int)DAT_0009179c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_0009179c"))) (; ";")) (expression_statement "DAT_0009179c = piVar24;" (assignment_expression "DAT_0009179c = piVar24" (identifier "DAT_0009179c") (= "=") (identifier "piVar24")) (; ";")) (if_statement "if ((int **)piVar27 != &DAT_0009179c) {\n          piVar29 = DAT_000917a0;\n        }" (if "if") (parenthesized_expression "((int **)piVar27 != &DAT_0009179c)" (( "(") (binary_expression "(int **)piVar27 != &DAT_0009179c" (cast_expression "(int **)piVar27" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar27")) (!= "!=") (pointer_expression "&DAT_0009179c" (& "&") (identifier "DAT_0009179c"))) () ")")) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" ({ "{") (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" (identifier "piVar29") (= "=") (identifier "DAT_000917a0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" (else "else") (compound_statement "{\n        *piVar29 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }\n      }" ({ "{") (expression_statement "*piVar29 = piVar26[6];" (assignment_expression "*piVar29 = piVar26[6]" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (= "=") (subscript_expression "piVar26[6]" (identifier "piVar26") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "piVar26[6] = (int)piVar24;" (assignment_expression "piVar26[6] = (int)piVar24" (subscript_expression "piVar26[6]" (identifier "piVar26") ([ "[") (number_literal "6") (] "]")) (= "=") (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24"))) (; ";")) (if_statement "if (piVar27 != piVar26 + 6) {\n          piVar29 = DAT_000917a0;\n        }" (if "if") (parenthesized_expression "(piVar27 != piVar26 + 6)" (( "(") (binary_expression "piVar27 != piVar26 + 6" (identifier "piVar27") (!= "!=") (binary_expression "piVar26 + 6" (identifier "piVar26") (+ "+") (number_literal "6"))) () ")")) (compound_statement "{\n          piVar29 = DAT_000917a0;\n        }" ({ "{") (expression_statement "piVar29 = DAT_000917a0;" (assignment_expression "piVar29 = DAT_000917a0" (identifier "piVar29") (= "=") (identifier "DAT_000917a0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "DAT_000917a0 = piVar29;" (assignment_expression "DAT_000917a0 = piVar29" (identifier "DAT_000917a0") (= "=") (identifier "piVar29")) (; ";")) (expression_statement "piVar26 = DAT_000917a0;" (assignment_expression "piVar26 = DAT_000917a0" (identifier "piVar26") (= "=") (identifier "DAT_000917a0")) (; ";")) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";")) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" (identifier "DAT_00091780") (= "=") (binary_expression "DAT_00091780 + 1" (identifier "DAT_00091780") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00025a30();" (call_expression "FUN_00025a30()" (identifier "FUN_00025a30") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_0009179c != piVar24) {\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" (if "if") (parenthesized_expression "(DAT_0009179c != piVar24)" (( "(") (binary_expression "DAT_0009179c != piVar24" (identifier "DAT_0009179c") (!= "!=") (identifier "piVar24")) () ")")) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0x1baf);\n      }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *piVar26;" (assignment_expression "iVar5 = *piVar26" (identifier "iVar5") (= "=") (pointer_expression "*piVar26" (* "*") (identifier "piVar26"))) (; ";")) (expression_statement "DAT_000917a0 = piVar26;" (assignment_expression "DAT_000917a0 = piVar26" (identifier "DAT_000917a0") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (number_literal "0")) (; ";")) (while_statement "while (iVar5 != 0) {\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);\n        iVar8 = *(int *)(iVar5 + 0x10);\n        if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }\n        piVar24 = DAT_0009179c;\n        if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }\nLAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);\n        if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);" (assignment_expression "iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(*(int *)(iVar5 + 0x10) + 0x88)" (* "*") (cast_expression "(int *)(*(int *)(iVar5 + 0x10) + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 0x10) + 0x88)" (( "(") (binary_expression "*(int *)(iVar5 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar8 = *(int *)(iVar5 + 0x10)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) {\n          iVar8 = iVar9;\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = iVar9;\n        }" ({ "{") (expression_statement "iVar8 = iVar9;" (assignment_expression "iVar8 = iVar9" (identifier "iVar8") (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";")) (if_statement "if (DAT_00091bc4 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_00091bc4 != (int *)0x0)" (( "(") (binary_expression "DAT_00091bc4 != (int *)0x0" (identifier "DAT_00091bc4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar23 = (int *)0x0;\n          local_50 = (int *)0x0;\n          piVar26 = DAT_00091bc4;\n          do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);\nLAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }\n        }" ({ "{") (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" (identifier "piVar23") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" (identifier "local_50") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar26 = DAT_00091bc4;" (assignment_expression "piVar26 = DAT_00091bc4" (identifier "piVar26") (= "=") (identifier "DAT_00091bc4")) (; ";")) (do_statement "do {\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          } while (piVar26 != (int *)0x0);" (do "do") (compound_statement "{\n            while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }\n            iVar25 = piVar26[6];\n            if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }\n            piVar26 = (int *)piVar26[7];\n            local_50 = piVar23;\n          }" ({ "{") (while_statement "while (piVar26[4] != iVar8) {\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" (while "while") (parenthesized_expression "(piVar26[4] != iVar8)" (( "(") (binary_expression "piVar26[4] != iVar8" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (!= "!=") (identifier "iVar8")) () ")")) (compound_statement "{\n              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }\n              piVar26 = (int *)piVar26[7];\n              if (piVar26 == (int *)0x0) goto LAB_000295b0;\n            }" ({ "{") (if_statement "if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n                piVar23 = piVar26;\n              }" (if "if") (parenthesized_expression "((piVar26[4] != 0) && (piVar26[6] != 0))" (( "(") (binary_expression "(piVar26[4] != 0) && (piVar26[6] != 0)" (parenthesized_expression "(piVar26[4] != 0)" (( "(") (binary_expression "piVar26[4] != 0" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar26[6] != 0)" (( "(") (binary_expression "piVar26[6] != 0" (subscript_expression "piVar26[6]" (identifier "piVar26") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                piVar23 = piVar26;\n              }" ({ "{") (expression_statement "piVar23 = piVar26;" (assignment_expression "piVar23 = piVar26" (identifier "piVar23") (= "=") (identifier "piVar26")) (; ";")) (} "}"))) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")))) (; ";")) (if_statement "if (piVar26 == (int *)0x0) goto LAB_000295b0;" (if "if") (parenthesized_expression "(piVar26 == (int *)0x0)" (( "(") (binary_expression "piVar26 == (int *)0x0" (identifier "piVar26") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000295b0;" (goto "goto") (statement_identifier "LAB_000295b0") (; ";"))) (} "}"))) (expression_statement "iVar25 = piVar26[6];" (assignment_expression "iVar25 = piVar26[6]" (identifier "iVar25") (= "=") (subscript_expression "piVar26[6]" (identifier "piVar26") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (iVar25 != 0) {\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              piVar24 = (int *)(iVar25 + 0x18);\n              iVar8 = *(int *)(iVar25 + 0x18);\n              goto LAB_000295f1;\n            }" ({ "{") (expression_statement "piVar24 = (int *)(iVar25 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar25 + 0x18)" (identifier "piVar24") (= "=") (cast_expression "(int *)(iVar25 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x18)" (( "(") (binary_expression "iVar25 + 0x18" (identifier "iVar25") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar8 = *(int *)(iVar25 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar25 + 0x18)" (* "*") (cast_expression "(int *)(iVar25 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x18)" (( "(") (binary_expression "iVar25 + 0x18" (identifier "iVar25") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (goto_statement "goto LAB_000295f1;" (goto "goto") (statement_identifier "LAB_000295f1") (; ";")) (} "}"))) (expression_statement "piVar26 = (int *)piVar26[7];" (assignment_expression "piVar26 = (int *)piVar26[7]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" (identifier "local_50") (= "=") (identifier "piVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar26 != (int *)0x0)" (( "(") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (labeled_statement "LAB_000295b0:\n          if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" (statement_identifier "LAB_000295b0") (: ":") (if_statement "if (local_50 != (int *)0x0) {\n            piVar24 = local_50;\n          }" (if "if") (parenthesized_expression "(local_50 != (int *)0x0)" (( "(") (binary_expression "local_50 != (int *)0x0" (identifier "local_50") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            piVar24 = local_50;\n          }" ({ "{") (expression_statement "piVar24 = local_50;" (assignment_expression "piVar24 = local_50" (identifier "piVar24") (= "=") (identifier "local_50")) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 6" (identifier "piVar24") (+ "+") (number_literal "6"))) (; ";")) (for_statement "for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" (for "for") (( "(") (assignment_expression "iVar8 = *piVar24" (identifier "iVar8") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar8 = *(int *)(iVar8 + 0x18)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar8 + 0x18)" (* "*") (cast_expression "(int *)(iVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")"))))) () ")") (compound_statement "{\n          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar8 + 0x18);\n        }" ({ "{") (if_statement "if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {\n            iVar8 = *piVar24;\n            break;\n          }" (if "if") (parenthesized_expression "(((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0))" (( "(") (binary_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" (parenthesized_expression "((*(byte *)(iVar8 + 0x25) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)(iVar8 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar8 + 0x25) & 0x40)" (( "(") (binary_expression "*(byte *)(iVar8 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar8 + 0x25)" (* "*") (cast_expression "(byte *)(iVar8 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x25)" (( "(") (binary_expression "iVar8 + 0x25" (identifier "iVar8") (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0" (pointer_expression "*(int *)(*(int *)(iVar8 + 0x10) + 0x88)" (* "*") (cast_expression "(int *)(*(int *)(iVar8 + 0x10) + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar8 + 0x10) + 0x88)" (( "(") (binary_expression "*(int *)(iVar8 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar8 + 0x10)" (* "*") (cast_expression "(int *)(iVar8 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x10)" (( "(") (binary_expression "iVar8 + 0x10" (identifier "iVar8") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x88")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar8 = *piVar24;\n            break;\n          }" ({ "{") (expression_statement "iVar8 = *piVar24;" (assignment_expression "iVar8 = *piVar24" (identifier "iVar8") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar24 = (int *)(iVar8 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar8 + 0x18)" (identifier "piVar24") (= "=") (cast_expression "(int *)(iVar8 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x18)" (( "(") (binary_expression "iVar8 + 0x18" (identifier "iVar8") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_000295f1:\n        local_50 = (int *)(iVar5 + 0x18);" (statement_identifier "LAB_000295f1") (: ":") (expression_statement "local_50 = (int *)(iVar5 + 0x18);" (assignment_expression "local_50 = (int *)(iVar5 + 0x18)" (identifier "local_50") (= "=") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (; ";"))) (if_statement "if (iVar9 == 0) {\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }\n        else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *piVar24 = iVar5;\n          iVar9 = *(int *)(iVar5 + 0x18);\n          *(int *)(iVar5 + 0x18) = iVar8;\n          iVar5 = iVar9;\n        }" ({ "{") (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar9 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x18)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar5 + 0x18) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x18) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar5 = iVar9;" (assignment_expression "iVar5 = iVar9" (identifier "iVar5") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (else_clause "else {\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" (else "else") (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }\n          *piVar24 = iVar5;\n          iVar5 = *local_50;\n          *local_50 = iVar8;\n          if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }\n        }" ({ "{") (expression_statement "iVar25 = *(int *)(iVar5 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x18)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar5 + 0x18)" (* "*") (cast_expression "(int *)(iVar5 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }\n          }" ({ "{") (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (* "*") (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" (( "(") (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" (* "*") (cast_expression "(int *)(iVar25 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x10)" (( "(") (binary_expression "iVar25 + 0x10" (identifier "iVar25") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (while_statement "while (iVar9 == iVar28) {\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" (while "while") (parenthesized_expression "(iVar9 == iVar28)" (( "(") (binary_expression "iVar9 == iVar28" (identifier "iVar9") (== "==") (identifier "iVar28")) () ")")) (compound_statement "{\n              local_50 = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);\n            }" ({ "{") (expression_statement "local_50 = (int *)(iVar25 + 0x18);" (assignment_expression "local_50 = (int *)(iVar25 + 0x18)" (identifier "local_50") (= "=") (cast_expression "(int *)(iVar25 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x18)" (( "(") (binary_expression "iVar25 + 0x18" (identifier "iVar25") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar25 + 0x18)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar25 + 0x18)" (* "*") (cast_expression "(int *)(iVar25 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x18)" (( "(") (binary_expression "iVar25 + 0x18" (identifier "iVar25") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar25 == 0) break;" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (* "*") (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x88)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x88)" (( "(") (binary_expression "*(int *)(iVar25 + 0x10) + 0x88" (pointer_expression "*(int *)(iVar25 + 0x10)" (* "*") (cast_expression "(int *)(iVar25 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x10)" (( "(") (binary_expression "iVar25 + 0x10" (identifier "iVar25") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x88")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar5 = *local_50;" (assignment_expression "iVar5 = *local_50" (identifier "iVar5") (= "=") (pointer_expression "*local_50" (* "*") (identifier "local_50"))) (; ";")) (expression_statement "*local_50 = iVar8;" (assignment_expression "*local_50 = iVar8" (pointer_expression "*local_50" (* "*") (identifier "local_50")) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (*(int *)(iVar9 + 0xa0) != 0) {\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar9 + 0xa0) != 0)" (( "(") (binary_expression "*(int *)(iVar9 + 0xa0) != 0" (pointer_expression "*(int *)(iVar9 + 0xa0)" (* "*") (cast_expression "(int *)(iVar9 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;\n          }" ({ "{") (expression_statement "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;" (assignment_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6" (pointer_expression "*(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" (* "*") (cast_expression "(int **)(*(int *)(iVar9 + 0xa0) + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x18)" (( "(") (binary_expression "*(int *)(iVar9 + 0xa0) + 0x18" (pointer_expression "*(int *)(iVar9 + 0xa0)" (* "*") (cast_expression "(int *)(iVar9 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "local_50 + -6" (identifier "local_50") (+ "+") (number_literal "-6"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (DAT_00091c64 != (undefined4 *)0x0) {\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" (if "if") (parenthesized_expression "(DAT_00091c64 != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00091c64 != (undefined4 *)0x0" (identifier "DAT_00091c64") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_000317b0("../../ld/ldlang.c",0x1c67);\n  }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0x1c67)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0x1c67)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c67") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00091c64 = &DAT_00091794;" (assignment_expression "DAT_00091c64 = &DAT_00091794" (identifier "DAT_00091c64") (= "=") (pointer_expression "&DAT_00091794" (& "&") (identifier "DAT_00091794"))) (; ";")) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" (( "(") (binary_expression "DAT_00091798 == (undefined *)0x0" (identifier "DAT_00091798") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_00091c64 = DAT_00091794;\n    if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }\n  }" ({ "{") (expression_statement "DAT_00091c64 = DAT_00091794;" (assignment_expression "DAT_00091c64 = DAT_00091794" (identifier "DAT_00091c64") (= "=") (identifier "DAT_00091794")) (; ";")) (if_statement "if (PTR_s_start_00091360 != (undefined *)0x0) {\n      FUN_000214f0();\n    }" (if "if") (parenthesized_expression "(PTR_s_start_00091360 != (undefined *)0x0)" (( "(") (binary_expression "PTR_s_start_00091360 != (undefined *)0x0" (identifier "PTR_s_start_00091360") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_000214f0();\n    }" ({ "{") (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" (identifier "FUN_000214f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_00091c6c != 0) {\n    FUN_000214f0();\n  }" (if "if") (parenthesized_expression "(DAT_00091c6c != 0)" (( "(") (binary_expression "DAT_00091c6c != 0" (identifier "DAT_00091c6c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000214f0();\n  }" ({ "{") (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" (identifier "FUN_000214f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00091c70 != 0) {\n    FUN_000214f0();\n  }" (if "if") (parenthesized_expression "(DAT_00091c70 != 0)" (( "(") (binary_expression "DAT_00091c70 != 0" (identifier "DAT_00091c70") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000214f0();\n  }" ({ "{") (expression_statement "FUN_000214f0();" (call_expression "FUN_000214f0()" (identifier "FUN_000214f0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0002ff70();" (call_expression "FUN_0002ff70()" (identifier "FUN_0002ff70") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0))" (( "(") (binary_expression "(DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00091d70 != 0)" (( "(") (binary_expression "DAT_00091d70 != 0" (identifier "DAT_00091d70") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00091810 != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00091810 != (undefined4 *)0x0" (identifier "DAT_00091810") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_000317f0(uVar6);\n    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }\n  }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" (identifier "dcgettext") (argument_list "(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nAs-needed library included to satisfy reference by file (symbol)\n\n"" (" """) (escape_sequence "\n") (string_content "As-needed library included to satisfy reference by file (symbol)") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_000317f0(uVar6);" (call_expression "FUN_000317f0(uVar6)" (identifier "FUN_000317f0") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (for_statement "for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" (for "for") (( "(") (assignment_expression "puVar13 = DAT_00091810" (identifier "puVar13") (= "=") (identifier "DAT_00091810")) (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)*puVar13" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) () ")") (compound_statement "{\n      FUN_000317f0(&DAT_0004be86,puVar13[1]);\n      sVar7 = strlen((char *)puVar13[1]);\n      if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }\n      do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);\n      if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }\n      FUN_000317f0("(%pT)\n",puVar13[3]);\n    }" ({ "{") (expression_statement "FUN_000317f0(&DAT_0004be86,puVar13[1]);" (call_expression "FUN_000317f0(&DAT_0004be86,puVar13[1])" (identifier "FUN_000317f0") (argument_list "(&DAT_0004be86,puVar13[1])" (( "(") (pointer_expression "&DAT_0004be86" (& "&") (identifier "DAT_0004be86")) (, ",") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "sVar7 = strlen((char *)puVar13[1]);" (assignment_expression "sVar7 = strlen((char *)puVar13[1])" (identifier "sVar7") (= "=") (call_expression "strlen((char *)puVar13[1])" (identifier "strlen") (argument_list "((char *)puVar13[1])" (( "(") (cast_expression "(char *)puVar13[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (0x1c < sVar7) {\n        FUN_00030840();\n        sVar7 = 0;\n      }" (if "if") (parenthesized_expression "(0x1c < sVar7)" (( "(") (binary_expression "0x1c < sVar7" (number_literal "0x1c") (< "<") (identifier "sVar7")) () ")")) (compound_statement "{\n        FUN_00030840();\n        sVar7 = 0;\n      }" ({ "{") (expression_statement "FUN_00030840();" (call_expression "FUN_00030840()" (identifier "FUN_00030840") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar7 = 0;" (assignment_expression "sVar7 = 0" (identifier "sVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      } while (sVar7 != 0x1e);" (do "do") (compound_statement "{\n        FUN_00030810();\n        sVar7 = sVar7 + 1;\n      }" ({ "{") (expression_statement "FUN_00030810();" (call_expression "FUN_00030810()" (identifier "FUN_00030810") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar7 = sVar7 + 1;" (assignment_expression "sVar7 = sVar7 + 1" (identifier "sVar7") (= "=") (binary_expression "sVar7 + 1" (identifier "sVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar7 != 0x1e)" (( "(") (binary_expression "sVar7 != 0x1e" (identifier "sVar7") (!= "!=") (number_literal "0x1e")) () ")")) (; ";")) (if_statement "if (puVar13[2] != 0) {\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" (if "if") (parenthesized_expression "(puVar13[2] != 0)" (( "(") (binary_expression "puVar13[2] != 0" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000317f0(&DAT_0004c110,puVar13[2]);\n      }" ({ "{") (expression_statement "FUN_000317f0(&DAT_0004c110,puVar13[2]);" (call_expression "FUN_000317f0(&DAT_0004c110,puVar13[2])" (identifier "FUN_000317f0") (argument_list "(&DAT_0004c110,puVar13[2])" (( "(") (pointer_expression "&DAT_0004c110" (& "&") (identifier "DAT_0004c110")) (, ",") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000317f0("(%pT)\n",puVar13[3]);" (call_expression "FUN_000317f0("(%pT)\n",puVar13[3])" (identifier "FUN_000317f0") (argument_list "("(%pT)\n",puVar13[3])" (( "(") (string_literal ""(%pT)\n"" (" """) (string_content "(%pT)") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" (identifier "bfd_section_already_linked_table_free") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";")) (labeled_statement "joined_r0x0002800a:\n  if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x0002800a") (: ":") (if_statement "if (piVar24 != (int *)0x0) {\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(piVar24 != (int *)0x0)" (( "(") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }\n      if (piVar24 == (int *)0x0) break;\n    }" ({ "{") (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }\n      else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" (( "(") (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" (* "*") (cast_expression "(byte *)((int)piVar24 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar24 + 0x25)" (( "(") (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24")) (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = piVar24[4];\n        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);\n        iVar9 = DAT_00091c50;\n        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }\n        if (DAT_00091cd0 == 0) goto LAB_000280c0;\n        uVar6 = bfd_printable_name(DAT_00091c50);\n        uVar12 = bfd_printable_name(iVar5);\n        uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);\n        FUN_00031760(uVar18,uVar12,iVar5,uVar6);\n        piVar24 = (int *)piVar24[6];\n      }" ({ "{") (expression_statement "iVar5 = piVar24[4];" (assignment_expression "iVar5 = piVar24[4]" (identifier "iVar5") (= "=") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);" (assignment_expression "iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" (identifier "iVar8") (= "=") (call_expression "bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc)" (identifier "bfd_arch_get_compatible") (argument_list "(iVar5,DAT_00091c50,DAT_00091cdc)" (( "(") (identifier "iVar5") (, ",") (identifier "DAT_00091c50") (, ",") (identifier "DAT_00091cdc") () ")")))) (; ";")) (expression_statement "iVar9 = DAT_00091c50;" (assignment_expression "iVar9 = DAT_00091c50" (identifier "iVar9") (= "=") (identifier "DAT_00091c50")) (; ";")) (if_statement "if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }\n        else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" (if "if") (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0))" (( "(") (binary_expression "(((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((DAT_00091c20._3_1_ & 8) != 0)" (( "(") (binary_expression "(DAT_00091c20._3_1_ & 8) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 8)" (( "(") (binary_expression "DAT_00091c20._3_1_ & 8" (field_expression "DAT_00091c20._3_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_3_1_")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }\n          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }\n        }" ({ "{") (if_statement "if (iVar8 != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\n            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;\n            goto LAB_00028063;\n          }" ({ "{") (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))\n            goto LAB_000282ef;" (if "if") (parenthesized_expression "((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))" (( "(") (binary_expression "(puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" (parenthesized_expression "(puVar13[1] != puVar20[1])" (( "(") (binary_expression "puVar13[1] != puVar20[1]" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (!= "!=") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" (* "*") (cast_expression "(byte *)(iVar5 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000282ef;" (goto "goto") (statement_identifier "LAB_000282ef") (; ";"))) (goto_statement "goto LAB_00028063;" (goto "goto") (statement_identifier "LAB_00028063") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" (if "if") (parenthesized_expression "((*(byte *)(iVar5 + 0x28) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(iVar5 + 0x28) & 0x20) != 0" (parenthesized_expression "(*(byte *)(iVar5 + 0x28) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar5 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar5 + 0x28)" (* "*") (cast_expression "(byte *)(iVar5 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x28)" (( "(") (binary_expression "iVar5 + 0x28" (identifier "iVar5") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar13 = *(undefined4 **)(iVar5 + 4);\n            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);\nLAB_000282ef:\n            uVar6 = *puVar20;\n            uVar12 = *puVar13;\n            uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);\n            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);\n            goto joined_r0x0002832b;\n          }" ({ "{") (expression_statement "puVar13 = *(undefined4 **)(iVar5 + 4);" (assignment_expression "puVar13 = *(undefined4 **)(iVar5 + 4)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(iVar5 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar5 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar20 = *(undefined4 **)(DAT_00091c50 + 4);" (assignment_expression "puVar20 = *(undefined4 **)(DAT_00091c50 + 4)" (identifier "puVar20") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 4)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (labeled_statement "LAB_000282ef:\n            uVar6 = *puVar20;" (statement_identifier "LAB_000282ef") (: ":") (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" (identifier "uVar6") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";"))) (expression_statement "uVar12 = *puVar13;" (assignment_expression "uVar12 = *puVar13" (identifier "uVar12") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" (identifier "dcgettext") (argument_list "(0,\n                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                               ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"" (" """) (string_content "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9)" (identifier "FUN_00031760") (argument_list "(uVar18,uVar12,iVar5,uVar6,iVar9)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar12") (, ",") (identifier "iVar5") (, ",") (identifier "uVar6") (, ",") (identifier "iVar9") () ")"))) (; ";")) (goto_statement "goto joined_r0x0002832b;" (goto "goto") (statement_identifier "joined_r0x0002832b") (; ";")) (} "}"))) (} "}")) (else_clause "else {\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" (else "else") (compound_statement "{\njoined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }\n        }" ({ "{") (labeled_statement "joined_r0x0002832b:\n          if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" (statement_identifier "joined_r0x0002832b") (: ":") (if_statement "if (iVar8 != 0) {\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;\n            uVar6 = 0;\n            if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }\n            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);\n            if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }\n            bfd_set_error_handler(uVar6);\n            goto LAB_000280c0;\n          }" ({ "{") (labeled_statement "LAB_00028063:\n            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" (statement_identifier "LAB_00028063") (: ":") (if_statement "if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x68) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x68) == 0" (pointer_expression "*(int *)(iVar5 + 0x68)" (* "*") (cast_expression "(int *)(iVar5 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x68)" (( "(") (binary_expression "iVar5 + 0x68" (identifier "iVar5") (+ "+") (number_literal "0x68")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000280c0;" (goto "goto") (statement_identifier "LAB_000280c0") (; ";")))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00091cd0 == 0) {\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" (if "if") (parenthesized_expression "(DAT_00091cd0 == 0)" (( "(") (binary_expression "DAT_00091cd0 == 0" (identifier "DAT_00091cd0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = bfd_set_error_handler(FUN_0001ded0);\n            }" ({ "{") (expression_statement "uVar6 = bfd_set_error_handler(FUN_0001ded0);" (assignment_expression "uVar6 = bfd_set_error_handler(FUN_0001ded0)" (identifier "uVar6") (= "=") (call_expression "bfd_set_error_handler(FUN_0001ded0)" (identifier "bfd_set_error_handler") (argument_list "(FUN_0001ded0)" (( "(") (identifier "FUN_0001ded0") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" (identifier "iVar9") (= "=") (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0xac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(DAT_00091c50 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00091c50 + 4)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))))) () ")")) (argument_list "(iVar5,&DAT_00091c20)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }\n            else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }\n            }" ({ "{") (if_statement "if (DAT_00091cd0 != 0) {\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" (if "if") (parenthesized_expression "(DAT_00091cd0 != 0)" (( "(") (binary_expression "DAT_00091cd0 != 0" (identifier "DAT_00091cd0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n                FUN_00031760(uVar12,iVar5);\n                goto LAB_00028ea4;\n              }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: failed to merge target specific data of file %pB\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: failed to merge target specific data of file %pB\n"" (" """) (string_content "%X%P: failed to merge target specific data of file %pB") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" (identifier "FUN_00031760") (argument_list "(uVar12,iVar5)" (( "(") (identifier "uVar12") (, ",") (identifier "iVar5") () ")"))) (; ";")) (goto_statement "goto LAB_00028ea4;" (goto "goto") (statement_identifier "LAB_00028ea4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" (else "else") (compound_statement "{\nLAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;\n            }" ({ "{") (labeled_statement "LAB_00028ea4:\n              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" (statement_identifier "LAB_00028ea4") (: ":") (if_statement "if (DAT_00091cd0 != 0) goto code_r0x00028eb3;" (if "if") (parenthesized_expression "(DAT_00091cd0 != 0)" (( "(") (binary_expression "DAT_00091cd0 != 0" (identifier "DAT_00091cd0") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00028eb3;" (goto "goto") (statement_identifier "code_r0x00028eb3") (; ";")))) (} "}")))) (expression_statement "bfd_set_error_handler(uVar6);" (call_expression "bfd_set_error_handler(uVar6)" (identifier "bfd_set_error_handler") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (goto_statement "goto LAB_000280c0;" (goto "goto") (statement_identifier "LAB_000280c0") (; ";")) (} "}")))) (} "}")))) (if_statement "if (DAT_00091cd0 == 0) goto LAB_000280c0;" (if "if") (parenthesized_expression "(DAT_00091cd0 == 0)" (( "(") (binary_expression "DAT_00091cd0 == 0" (identifier "DAT_00091cd0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000280c0;" (goto "goto") (statement_identifier "LAB_000280c0") (; ";"))) (expression_statement "uVar6 = bfd_printable_name(DAT_00091c50);" (assignment_expression "uVar6 = bfd_printable_name(DAT_00091c50)" (identifier "uVar6") (= "=") (call_expression "bfd_printable_name(DAT_00091c50)" (identifier "bfd_printable_name") (argument_list "(DAT_00091c50)" (( "(") (identifier "DAT_00091c50") () ")")))) (; ";")) (expression_statement "uVar12 = bfd_printable_name(iVar5);" (assignment_expression "uVar12 = bfd_printable_name(iVar5)" (identifier "uVar12") (= "=") (call_expression "bfd_printable_name(iVar5)" (identifier "bfd_printable_name") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" (identifier "dcgettext") (argument_list "(0,\n                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                           ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"" (" """) (string_content "%X%P: %s architecture of input file `%pB") (escape_sequence "\'") (string_content " is incompatible with %s output") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar18,uVar12,iVar5,uVar6);" (call_expression "FUN_00031760(uVar18,uVar12,iVar5,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar18,uVar12,iVar5,uVar6)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar12") (, ",") (identifier "iVar5") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) (; ";")) (} "}")) (else_clause "else {\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" (else "else") (compound_statement "{\nLAB_000280c0:\n        piVar24 = (int *)piVar24[6];\n      }" ({ "{") (labeled_statement "LAB_000280c0:\n        piVar24 = (int *)piVar24[6];" (statement_identifier "LAB_000280c0") (: ":") (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (} "}")))) (if_statement "if (piVar24 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar24 == (int *)0x0)" (( "(") (binary_expression "piVar24 == (int *)0x0" (identifier "piVar24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (if_statement "if (DAT_00091d14 != 0) {\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" (if "if") (parenthesized_expression "(DAT_00091d14 != 0)" (( "(") (binary_expression "DAT_00091d14 != 0" (identifier "DAT_00091d14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar6 = 0;\n    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }\nLAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);\n    iVar5 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar5 + 0xc) = uVar6;\n    *(undefined4 *)(iVar5 + 0x1c) = uVar12;\n    *(code **)(iVar5 + 0x38) = FUN_0001eb80;\n    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;\n    FUN_000279d0(DAT_00091d14,iVar5,0);\n  }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }\n    }" ({ "{") (while_statement "while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" (while "while") (parenthesized_expression "(iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0)" (( "(") (comma_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0" (assignment_expression "iVar5 = bfd_get_section_by_name(piVar24[4],".exports")" (identifier "iVar5") (= "=") (call_expression "bfd_get_section_by_name(piVar24[4],".exports")" (identifier "bfd_get_section_by_name") (argument_list "(piVar24[4],".exports")" (( "(") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (, ",") (string_literal "".exports"" (" """) (string_content ".exports") (" """)) () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar9 = *(int *)(iVar5 + 0x24);\n        pcVar10 = (char *)xmalloc(iVar9);\n        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);\n        if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }\n        pcVar11 = pcVar10 + iVar9;\n        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }\n        piVar24 = (int *)piVar24[6];\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;\n        if (piVar24 == (int *)0x0) goto LAB_000281aa;\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar5 + 0x24);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x24)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "pcVar10 = (char *)xmalloc(iVar9);" (assignment_expression "pcVar10 = (char *)xmalloc(iVar9)" (identifier "pcVar10") (= "=") (cast_expression "(char *)xmalloc(iVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar9)" (identifier "xmalloc") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")"))))) (; ";")) (expression_statement "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);" (assignment_expression "iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" (identifier "iVar8") (= "=") (call_expression "bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9)" (identifier "bfd_get_section_contents") (argument_list "(piVar24[4],iVar5,pcVar10,0,0,iVar9)" (( "(") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "iVar5") (, ",") (identifier "pcVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n          FUN_00031760(uVar12,iVar5);\n        }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: unable to read .exports section contents\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: unable to read .exports section contents\n"" (" """) (string_content "%X%P: unable to read .exports section contents") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,iVar5);" (call_expression "FUN_00031760(uVar12,iVar5)" (identifier "FUN_00031760") (argument_list "(uVar12,iVar5)" (( "(") (identifier "uVar12") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar11 = pcVar10 + iVar9;" (assignment_expression "pcVar11 = pcVar10 + iVar9" (identifier "pcVar11") (= "=") (binary_expression "pcVar10 + iVar9" (identifier "pcVar10") (+ "+") (identifier "iVar9"))) (; ";")) (for_statement "for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" (for "for") (( "(") (; ";") (binary_expression "pcVar10 < pcVar11" (identifier "pcVar10") (< "<") (identifier "pcVar11")) (; ";") (assignment_expression "pcVar10 = pcVar10 + sVar7 + 1" (identifier "pcVar10") (= "=") (binary_expression "pcVar10 + sVar7 + 1" (binary_expression "pcVar10 + sVar7" (identifier "pcVar10") (+ "+") (identifier "sVar7")) (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);\n          sVar7 = strlen(pcVar10);\n        }" ({ "{") (expression_statement "uVar6 = FUN_00027750(uVar6,pcVar10,0,0);" (assignment_expression "uVar6 = FUN_00027750(uVar6,pcVar10,0,0)" (identifier "uVar6") (= "=") (call_expression "FUN_00027750(uVar6,pcVar10,0,0)" (identifier "FUN_00027750") (argument_list "(uVar6,pcVar10,0,0)" (( "(") (identifier "uVar6") (, ",") (identifier "pcVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" (identifier "sVar7") (= "=") (call_expression "strlen(pcVar10)" (identifier "strlen") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (} "}"))) (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar5 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "0x208000"))) (; ";")) (if_statement "if (piVar24 == (int *)0x0) goto LAB_000281aa;" (if "if") (parenthesized_expression "(piVar24 == (int *)0x0)" (( "(") (binary_expression "piVar24 == (int *)0x0" (identifier "piVar24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000281aa;" (goto "goto") (statement_identifier "LAB_000281aa") (; ";"))) (} "}"))) (} "}"))) (labeled_statement "LAB_000281aa:\n    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" (statement_identifier "LAB_000281aa") (: ":") (expression_statement "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);" (assignment_expression "uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0)" (identifier "uVar12") (= "=") (call_expression "FUN_00027750(0,&DAT_0004bfe8,0,0)" (identifier "FUN_00027750") (argument_list "(0,&DAT_0004bfe8,0,0)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0004bfe8" (& "&") (identifier "DAT_0004bfe8")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "iVar5 = xcalloc(1,0x3c);" (assignment_expression "iVar5 = xcalloc(1,0x3c)" (identifier "iVar5") (= "=") (call_expression "xcalloc(1,0x3c)" (identifier "xcalloc") (argument_list "(1,0x3c)" (( "(") (number_literal "1") (, ",") (number_literal "0x3c") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x1c) = uVar12;" (assignment_expression "*(undefined4 *)(iVar5 + 0x1c) = uVar12" (pointer_expression "*(undefined4 *)(iVar5 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(code **)(iVar5 + 0x38) = FUN_0001eb80;" (assignment_expression "*(code **)(iVar5 + 0x38) = FUN_0001eb80" (pointer_expression "*(code **)(iVar5 + 0x38)" (* "*") (cast_expression "(code **)(iVar5 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x38)" (( "(") (binary_expression "iVar5 + 0x38" (identifier "iVar5") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "FUN_0001eb80")) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar5 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar5 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x30)" (( "(") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "FUN_000279d0(DAT_00091d14,iVar5,0);" (call_expression "FUN_000279d0(DAT_00091d14,iVar5,0)" (identifier "FUN_000279d0") (argument_list "(DAT_00091d14,iVar5,0)" (( "(") (identifier "DAT_00091d14") (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0002ad40();" (call_expression "FUN_0002ad40()" (identifier "FUN_0002ad40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = PTR__sch_istable_00090fa8;" (assignment_expression "puVar15 = PTR__sch_istable_00090fa8" (identifier "puVar15") (= "=") (identifier "PTR__sch_istable_00090fa8")) (; ";")) (if_statement "if (DAT_00091d2c != 0) {\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00091d2c != 0)" (( "(") (binary_expression "DAT_00091d2c != 0" (identifier "DAT_00091d2c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_40 = DAT_00091c58;\n    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);\n    if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }\n  }" ({ "{") (expression_statement "local_40 = DAT_00091c58;" (assignment_expression "local_40 = DAT_00091c58" (identifier "local_40") (= "=") (identifier "DAT_00091c58")) (; ";")) (expression_statement "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" (* "*") (cast_expression "(char *)(*(int *)(DAT_00091c50 + 4) + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18)" (( "(") (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00091c50 + 4)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (DAT_00091c58 != 0) {\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" (if "if") (parenthesized_expression "(DAT_00091c58 != 0)" (( "(") (binary_expression "DAT_00091c58 != 0" (identifier "DAT_00091c58") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);\n    }" ({ "{") (do_statement "do {\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      } while (local_40 != 0);" (do "do") (compound_statement "{\n        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }\nLAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);\n      }" ({ "{") (for_statement "for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;\n            puVar13 = (undefined4 *)puVar13[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" (for "for") (( "(") (assignment_expression "puVar13 = *(undefined4 **)(local_40 + 0x60)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(local_40 + 0x60)" (* "*") (cast_expression "(undefined4 **)(local_40 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_40 + 0x60)" (( "(") (binary_expression "local_40 + 0x60" (identifier "local_40") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }\nLAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);\n          pcVar10 = (char *)xmalloc(sVar7 + 10);\n          *pcVar10 = cVar4;\n          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);\n          FUN_0001eaf0();\n          pcVar10[1] = cVar4;\n          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);\n          FUN_0001eaf0();\n          free(pcVar10);\n        }" ({ "{") (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            bVar19 = *pbVar3;\n            if (bVar19 == 0) break;\n            bVar2 = puVar15[(uint)bVar19 * 2];\n            pbVar17 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }\n            puVar13 = (undefined4 *)puVar13[3];\n            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;\n          }" ({ "{") (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*puVar13" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "bVar19 = *pbVar3;" (assignment_expression "bVar19 = *pbVar3" (identifier "bVar19") (= "=") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) (; ";")) (if_statement "if (bVar19 == 0) break;" (if "if") (parenthesized_expression "(bVar19 == 0)" (( "(") (binary_expression "bVar19 == 0" (identifier "bVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" (identifier "bVar2") (= "=") (subscript_expression "puVar15[(uint)bVar19 * 2]" (identifier "puVar15") ([ "[") (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" (identifier "pbVar17") (= "=") (identifier "pbVar3")) (; ";")) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" (while "while") (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)))" (( "(") (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))" (( "(") (binary_expression "(bVar2 & 0x8c) != 0 || (bVar19 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" (( "(") (binary_expression "bVar2 & 0x8c" (identifier "bVar2") (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(bVar19 == 0x5f)" (( "(") (binary_expression "bVar19 == 0x5f" (identifier "bVar19") (== "==") (number_literal "0x5f")) () ")"))) () ")")) () ")")) (compound_statement "{\n              pbVar17 = pbVar17 + 1;\n              bVar19 = *pbVar17;\n              if (bVar19 == 0) goto LAB_000299d0;\n              bVar2 = puVar15[(uint)bVar19 * 2];\n            }" ({ "{") (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar19 = *pbVar17;" (assignment_expression "bVar19 = *pbVar17" (identifier "bVar19") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (if_statement "if (bVar19 == 0) goto LAB_000299d0;" (if "if") (parenthesized_expression "(bVar19 == 0)" (( "(") (binary_expression "bVar19 == 0" (identifier "bVar19") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000299d0;" (goto "goto") (statement_identifier "LAB_000299d0") (; ";"))) (expression_statement "bVar2 = puVar15[(uint)bVar19 * 2];" (assignment_expression "bVar2 = puVar15[(uint)bVar19 * 2]" (identifier "bVar2") (= "=") (subscript_expression "puVar15[(uint)bVar19 * 2]" (identifier "puVar15") ([ "[") (binary_expression "(uint)bVar19 * 2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000299b0;" (goto "goto") (statement_identifier "LAB_000299b0") (; ";"))) (} "}"))) (labeled_statement "LAB_000299d0:\n          sVar7 = strlen((char *)pbVar3);" (statement_identifier "LAB_000299d0") (: ":") (expression_statement "sVar7 = strlen((char *)pbVar3);" (assignment_expression "sVar7 = strlen((char *)pbVar3)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)pbVar3)" (identifier "strlen") (argument_list "((char *)pbVar3)" (( "(") (cast_expression "(char *)pbVar3" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar3")) () ")")))) (; ";"))) (expression_statement "pcVar10 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar10 = (char *)xmalloc(sVar7 + 10)" (identifier "pcVar10") (= "=") (cast_expression "(char *)xmalloc(sVar7 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar7 + 10)" (identifier "xmalloc") (argument_list "(sVar7 + 10)" (( "(") (binary_expression "sVar7 + 10" (identifier "sVar7") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "*pcVar10 = cVar4;" (assignment_expression "*pcVar10 = cVar4" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" (identifier "sprintf") (argument_list "(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3)" (( "(") (binary_expression "pcVar10 + (cVar4 != '\0')" (identifier "pcVar10") (+ "+") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (, ",") (string_literal ""__start_%s"" (" """) (string_content "__start_%s") (" """)) (, ",") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" (identifier "FUN_0001eaf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar10[1] = cVar4;" (assignment_expression "pcVar10[1] = cVar4" (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" (identifier "builtin_strncpy") (argument_list "(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6)" (( "(") (binary_expression "pcVar10 + (2 - (uint)(cVar4 == '\0'))" (identifier "pcVar10") (+ "+") (parenthesized_expression "(2 - (uint)(cVar4 == '\0'))" (( "(") (binary_expression "2 - (uint)(cVar4 == '\0')" (number_literal "2") (- "-") (call_expression "(uint)(cVar4 == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")"))) (, ",") (string_literal ""__stop"" (" """) (string_content "__stop") (" """)) (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" (identifier "FUN_0001eaf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(pcVar10);" (call_expression "free(pcVar10)" (identifier "free") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000299b0:\n        local_40 = *(int *)(local_40 + 0x98);" (statement_identifier "LAB_000299b0") (: ":") (expression_statement "local_40 = *(int *)(local_40 + 0x98);" (assignment_expression "local_40 = *(int *)(local_40 + 0x98)" (identifier "local_40") (= "=") (pointer_expression "*(int *)(local_40 + 0x98)" (* "*") (cast_expression "(int *)(local_40 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + 0x98)" (( "(") (binary_expression "local_40 + 0x98" (identifier "local_40") (+ "+") (number_literal "0x98")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(local_40 != 0)" (( "(") (binary_expression "local_40 != 0" (identifier "local_40") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00024940(1);" (call_expression "FUN_00024940(1)" (identifier "FUN_00024940") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar13 = DAT_000917ec;" (assignment_expression "puVar13 = DAT_000917ec" (identifier "puVar13") (= "=") (identifier "DAT_000917ec")) (; ";")) (labeled_statement "joined_r0x00028237:\n  if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x00028237") (: ":") (if_statement "if (puVar13 != (undefined4 *)0x0) {\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }\n      if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }\n      puVar13 = (undefined4 *)puVar13[2];\n      if (puVar13 == (undefined4 *)0x0) break;\n    }" ({ "{") (if_statement "if (puVar13[3] != 0) {\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" (if "if") (parenthesized_expression "(puVar13[3] != 0)" (( "(") (binary_expression "puVar13[3] != 0" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0002f4f0(puVar13[3]);\n        uVar6 = DAT_00091db4;\n        if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }\n      }" ({ "{") (expression_statement "FUN_0002f4f0(puVar13[3]);" (call_expression "FUN_0002f4f0(puVar13[3])" (identifier "FUN_0002f4f0") (argument_list "(puVar13[3])" (( "(") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "uVar6 = DAT_00091db4;" (assignment_expression "uVar6 = DAT_00091db4" (identifier "uVar6") (= "=") (identifier "DAT_00091db4")) (; ";")) (if_statement "if (DAT_00091dc0 == 0) {\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }\n        else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" (if "if") (parenthesized_expression "(DAT_00091dc0 == 0)" (( "(") (binary_expression "DAT_00091dc0 == 0" (identifier "DAT_00091dc0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = *puVar13;\n          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00031760(uVar12,uVar6);\n        }" ({ "{") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: invalid origin for memory region %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: invalid origin for memory region %s\n"" (" """) (string_content "%F%P: invalid origin for memory region %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" (else "else") (compound_statement "{\n          puVar13[4] = DAT_00091db4;\n          puVar13[7] = uVar6;\n        }" ({ "{") (expression_statement "puVar13[4] = DAT_00091db4;" (assignment_expression "puVar13[4] = DAT_00091db4" (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "DAT_00091db4")) (; ";")) (expression_statement "puVar13[7] = uVar6;" (assignment_expression "puVar13[7] = uVar6" (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (puVar13[6] != 0) {\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" (if "if") (parenthesized_expression "(puVar13[6] != 0)" (( "(") (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0002f4f0(puVar13[6]);\n        if (DAT_00091dc0 == 0) goto LAB_000283a0;\n        puVar13[5] = DAT_00091db4;\n      }" ({ "{") (expression_statement "FUN_0002f4f0(puVar13[6]);" (call_expression "FUN_0002f4f0(puVar13[6])" (identifier "FUN_0002f4f0") (argument_list "(puVar13[6])" (( "(") (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) () ")"))) (; ";")) (if_statement "if (DAT_00091dc0 == 0) goto LAB_000283a0;" (if "if") (parenthesized_expression "(DAT_00091dc0 == 0)" (( "(") (binary_expression "DAT_00091dc0 == 0" (identifier "DAT_00091dc0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000283a0;" (goto "goto") (statement_identifier "LAB_000283a0") (; ";"))) (expression_statement "puVar13[5] = DAT_00091db4;" (assignment_expression "puVar13[5] = DAT_00091db4" (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "DAT_00091db4")) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (expression_statement "DAT_00091da0 = 0;" (assignment_expression "DAT_00091da0 = 0" (identifier "DAT_00091da0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))))" (( "(") (binary_expression "((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" (parenthesized_expression "((DAT_00091c27 & 0x20) == 0)" (( "(") (binary_expression "(DAT_00091c27 & 0x20) == 0" (parenthesized_expression "(DAT_00091c27 & 0x20)" (( "(") (binary_expression "DAT_00091c27 & 0x20" (identifier "DAT_00091c27") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))" (( "(") (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0))" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)" (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(DAT_00091cc0 != 0)" (( "(") (binary_expression "DAT_00091cc0 != 0" (identifier "DAT_00091cc0") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }\n  }" ({ "{") (if_statement "if (DAT_00091d4c == 0) {\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }\n    else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" (if "if") (parenthesized_expression "(DAT_00091d4c == 0)" (( "(") (binary_expression "DAT_00091d4c == 0" (identifier "DAT_00091d4c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);\n    }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00091c3c,FUN_00020320,0)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "FUN_00020320") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" (else "else") (compound_statement "{\n      if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }\n      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n    }" ({ "{") (if_statement "if (DAT_00091d4c == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }\n      else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" (if "if") (parenthesized_expression "(DAT_00091d4c == 2)" (( "(") (binary_expression "DAT_00091d4c == 2" (identifier "DAT_00091d4c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);\n        local_20[0] = (char *)0x0;\n      }" ({ "{") (expression_statement "local_20[0] = (char *)0x4;" (assignment_expression "local_20[0] = (char *)0x4" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4"))) (; ";")) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        } while (local_20[0] != (char *)0x0);" (do "do") (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "FUN_00020320") (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "local_20[0] = local_20[0] + -1;" (assignment_expression "local_20[0] = local_20[0] + -1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_20[0] + -1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_20[0] != (char *)0x0)" (( "(") (binary_expression "local_20[0] != (char *)0x0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" (else "else") (compound_statement "{\n        local_20[0] = (char *)0x0;\n        do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);\n        local_20[0] = (char *)0xffffffff;\n      }" ({ "{") (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        } while (local_20[0] < (char *)0x5);" (do "do") (compound_statement "{\n          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "FUN_00020320") (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "local_20[0] = local_20[0] + 1;" (assignment_expression "local_20[0] = local_20[0] + 1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_20[0] + 1" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_20[0] < (char *)0x5)" (( "(") (binary_expression "local_20[0] < (char *)0x5" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (< "<") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) () ")")) (; ";")) (expression_statement "local_20[0] = (char *)0xffffffff;" (assignment_expression "local_20[0] = (char *)0xffffffff" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")))) (expression_statement "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00091c3c,FUN_00020320,local_20)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "FUN_00020320") (, ",") (identifier "local_20") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_00025560();" (call_expression "FUN_00025560()" (identifier "FUN_00025560") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar19 = (byte)DAT_00091c20;" (assignment_expression "bVar19 = (byte)DAT_00091c20" (identifier "bVar19") (= "=") (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20"))) (; ";")) (expression_statement "piVar24 = DAT_0009179c;" (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";")) (if_statement "if (((byte)DAT_00091c20 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" ({ "{") (for_statement "for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20) == 0" (parenthesized_expression "(*(byte *)((int)piVar24 + 0x25) & 0x20)" (( "(") (binary_expression "*(byte *)((int)piVar24 + 0x25) & 0x20" (pointer_expression "*(byte *)((int)piVar24 + 0x25)" (* "*") (cast_expression "(byte *)((int)piVar24 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar24 + 0x25)" (( "(") (binary_expression "(int)piVar24 + 0x25" (cast_expression "(int)piVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar24")) (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" ({ "{") (for_statement "for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" (for "for") (( "(") (assignment_expression "iVar5 = *(int *)(piVar24[4] + 0x60)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(piVar24[4] + 0x60)" (* "*") (cast_expression "(int *)(piVar24[4] + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[4] + 0x60)" (( "(") (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }\n        }" ({ "{") (if_statement "if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" (if "if") (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x2000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x2000)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;\n          }" ({ "{") (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar5 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xffff7fff"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((bVar19 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" (if "if") (parenthesized_expression "((bVar19 & 0x40) != 0)" (( "(") (binary_expression "(bVar19 & 0x40) != 0" (parenthesized_expression "(bVar19 & 0x40)" (( "(") (binary_expression "bVar19 & 0x40" (identifier "bVar19") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x184)" (( "(") (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00091c50 + 4)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x184")) () ")"))))) () ")")) (argument_list "(DAT_00091c50,&DAT_00091c20)" (( "(") (identifier "DAT_00091c50") (, ",") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = DAT_00091c58;" (assignment_expression "iVar5 = DAT_00091c58" (identifier "iVar5") (= "=") (identifier "DAT_00091c58")) (; ";")) (if_statement "if ((DAT_00091c26 & 0x20) != 0) {\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00091c26 & 0x20) != 0)" (( "(") (binary_expression "(DAT_00091c26 & 0x20) != 0" (parenthesized_expression "(DAT_00091c26 & 0x20)" (( "(") (binary_expression "DAT_00091c26 & 0x20" (identifier "DAT_00091c26") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }\n  }" ({ "{") (for_statement "for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar5 = *(int *)(iVar5 + 0x98)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar5 + 0x98)" (* "*") (cast_expression "(int *)(iVar5 + 0x98)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x98)" (( "(") (binary_expression "iVar5 + 0x98" (identifier "iVar5") (+ "+") (number_literal "0x98")) () ")"))))) () ")") (compound_statement "{\n      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);\n      if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);" (assignment_expression "iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20)" (identifier "iVar9") (= "=") (call_expression "bfd_link_check_relocs(iVar5,&DAT_00091c20)" (identifier "bfd_link_check_relocs") (argument_list "(iVar5,&DAT_00091c20)" (( "(") (identifier "iVar5") (, ",") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20")) () ")")))) (; ";")) (if_statement "if (iVar9 == 0) {\n        DAT_00091d24 = 0;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00091d24 = 0;\n      }" ({ "{") (expression_statement "DAT_00091d24 = 0;" (assignment_expression "DAT_00091d24 = 0" (identifier "DAT_00091d24") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0002ff90();" (call_expression "FUN_0002ff90()" (identifier "FUN_0002ff90") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar26 = (int *)0x0;" (assignment_expression "piVar26 = (int *)0x0" (identifier "piVar26") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_0001e040();" (call_expression "FUN_0001e040()" (identifier "FUN_0001e040") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_00091780 = DAT_00091780 + 1;" (assignment_expression "DAT_00091780 = DAT_00091780 + 1" (identifier "DAT_00091780") (= "=") (binary_expression "DAT_00091780 + 1" (identifier "DAT_00091780") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00025680();" (call_expression "FUN_00025680()" (identifier "FUN_00025680") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" (identifier "piVar23") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar24 = (int *)*DAT_00091be0;" (assignment_expression "piVar24 = (int *)*DAT_00091be0" (identifier "piVar24") (= "=") (cast_expression "(int *)*DAT_00091be0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00091be0" (* "*") (identifier "DAT_00091be0")))) (; ";")) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }\n  else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" (if "if") (parenthesized_expression "(piVar24 == (int *)0x0)" (( "(") (binary_expression "piVar24 == (int *)0x0" (identifier "piVar24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_00028564:\n    if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" (statement_identifier "LAB_00028564") (: ":") (if_statement "if (piVar26 != (int *)0x0) {\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" (if "if") (parenthesized_expression "(piVar26 != (int *)0x0)" (( "(") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar26[0x12] = -2 - piVar26[0x12];\n      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }\n    }" ({ "{") (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" (identifier "piVar26") ([ "[") (number_literal "0x12") (] "]")) (= "=") (binary_expression "-2 - piVar26[0x12]" (number_literal "-2") (- "-") (subscript_expression "piVar26[0x12]" (identifier "piVar26") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (while_statement "while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" (while "while") (parenthesized_expression "((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)))" (( "(") (parenthesized_expression "(piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))" (( "(") (binary_expression "piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" (binary_expression "piVar23 != piVar26" (identifier "piVar23") (!= "!=") (identifier "piVar26")) (&& "&&") (parenthesized_expression "(piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0)" (( "(") (comma_expression "piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0" (assignment_expression "piVar26 = (int *)piVar26[4]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")))) (, ",") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")")) (compound_statement "{\n        piVar26[0x12] = -2 - piVar26[0x12];\n      }" ({ "{") (expression_statement "piVar26[0x12] = -2 - piVar26[0x12];" (assignment_expression "piVar26[0x12] = -2 - piVar26[0x12]" (subscript_expression "piVar26[0x12]" (identifier "piVar26") ([ "[") (number_literal "0x12") (] "]")) (= "=") (binary_expression "-2 - piVar26[0x12]" (number_literal "-2") (- "-") (subscript_expression "piVar26[0x12]" (identifier "piVar26") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" (else "else") (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar29 = DAT_00091be0;\n    while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }\n    iVar5 = FUN_00022cf0(piVar24[2],0,0);\n    if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }\nLAB_00028636:\n    iVar5 = piVar24[2];\n    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00031760(uVar6,iVar5);\n  }" ({ "{") (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar29 = DAT_00091be0;" (assignment_expression "piVar29 = DAT_00091be0" (identifier "piVar29") (= "=") (identifier "DAT_00091be0")) (; ";")) (while_statement "while (piVar14 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" (while "while") (parenthesized_expression "(piVar14 = piVar24, piVar24[1] == 0)" (( "(") (comma_expression "piVar14 = piVar24, piVar24[1] == 0" (assignment_expression "piVar14 = piVar24" (identifier "piVar14") (= "=") (identifier "piVar24")) (, ",") (binary_expression "piVar24[1] == 0" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_0002855a;\nLAB_0002855c:\n      piVar24 = (int *)*piVar14;\n      piVar27 = piVar26;\n      piVar29 = piVar14;\n      if (piVar24 == (int *)0x0) goto LAB_00028564;\n    }" ({ "{") (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" (if "if") (parenthesized_expression "((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4]))" (( "(") (binary_expression "(piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])" (parenthesized_expression "(piVar23 != (int *)0x0)" (( "(") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(piVar24 != (int *)piVar23[4])" (( "(") (binary_expression "piVar24 != (int *)piVar23[4]" (identifier "piVar24") (!= "!=") (cast_expression "(int *)piVar23[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]")))) () ")"))) () ")")) (compound_statement "{\n        FUN_000317b0("../../ld/ldlang.c",0xea0);\n        piVar14 = (int *)*piVar29;\n      }" ({ "{") (expression_statement "FUN_000317b0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_000317b0("../../ld/ldlang.c",0xea0)" (identifier "FUN_000317b0") (argument_list "("../../ld/ldlang.c",0xea0)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0xea0") () ")"))) (; ";")) (expression_statement "piVar14 = (int *)*piVar29;" (assignment_expression "piVar14 = (int *)*piVar29" (identifier "piVar14") (= "=") (cast_expression "(int *)*piVar29" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar29" (* "*") (identifier "piVar29")))) (; ";")) (} "}"))) (expression_statement "piVar24[0x12] = -2 - piVar24[0x12];" (assignment_expression "piVar24[0x12] = -2 - piVar24[0x12]" (subscript_expression "piVar24[0x12]" (identifier "piVar24") ([ "[") (number_literal "0x12") (] "]")) (= "=") (binary_expression "-2 - piVar24[0x12]" (number_literal "-2") (- "-") (subscript_expression "piVar24[0x12]" (identifier "piVar24") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "piVar23 = piVar24;" (assignment_expression "piVar23 = piVar24" (identifier "piVar23") (= "=") (identifier "piVar24")) (; ";")) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" (identifier "piVar26") (= "=") (identifier "piVar24")) (; ";")) (if_statement "if (piVar27 != (int *)0x0) goto LAB_0002855a;" (if "if") (parenthesized_expression "(piVar27 != (int *)0x0)" (( "(") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002855a;" (goto "goto") (statement_identifier "LAB_0002855a") (; ";"))) (labeled_statement "LAB_0002855c:\n      piVar24 = (int *)*piVar14;" (statement_identifier "LAB_0002855c") (: ":") (expression_statement "piVar24 = (int *)*piVar14;" (assignment_expression "piVar24 = (int *)*piVar14" (identifier "piVar24") (= "=") (cast_expression "(int *)*piVar14" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar14" (* "*") (identifier "piVar14")))) (; ";"))) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" (identifier "piVar27") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "piVar29 = piVar14;" (assignment_expression "piVar29 = piVar14" (identifier "piVar29") (= "=") (identifier "piVar14")) (; ";")) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028564;" (if "if") (parenthesized_expression "(piVar24 == (int *)0x0)" (( "(") (binary_expression "piVar24 == (int *)0x0" (identifier "piVar24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00028564;" (goto "goto") (statement_identifier "LAB_00028564") (; ";"))) (} "}"))) (if_statement "if (piVar24[1] != 0xe) {\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" (if "if") (parenthesized_expression "(piVar24[1] != 0xe)" (( "(") (binary_expression "piVar24[1] != 0xe" (subscript_expression "piVar24[1]" (identifier "piVar24") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0xe")) () ")")) (compound_statement "{\nLAB_0002855a:\n      piVar26 = piVar27;\n      goto LAB_0002855c;\n    }" ({ "{") (labeled_statement "LAB_0002855a:\n      piVar26 = piVar27;" (statement_identifier "LAB_0002855a") (: ":") (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" (identifier "piVar26") (= "=") (identifier "piVar27")) (; ";"))) (goto_statement "goto LAB_0002855c;" (goto "goto") (statement_identifier "LAB_0002855c") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00022cf0(piVar24[2],0,0);" (assignment_expression "iVar5 = FUN_00022cf0(piVar24[2],0,0)" (identifier "iVar5") (= "=") (call_expression "FUN_00022cf0(piVar24[2],0,0)" (identifier "FUN_00022cf0") (argument_list "(piVar24[2],0,0)" (( "(") (subscript_expression "piVar24[2]" (identifier "piVar24") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001dd70();\n      iVar5 = *DAT_00091be0;\n      *DAT_00091be0 = *(int *)*piVar29;\n      iVar9 = *piVar24;\n      *piVar29 = iVar9;\n      if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }\n      *piVar24 = iVar5;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar14 = DAT_00091be0;\n      goto LAB_0002855c;\n    }" ({ "{") (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" (if "if") (parenthesized_expression "(piVar24[3] != 0)" (( "(") (binary_expression "piVar24[3] != 0" (subscript_expression "piVar24[3]" (identifier "piVar24") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);\n      }" ({ "{") (do_statement "do {\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        } while (*(int *)(iVar5 + 0x48) < 0);" (do "do") (compound_statement "{\n          iVar5 = *(int *)(iVar5 + 0x14);\n          if (iVar5 == 0) goto LAB_00028636;\n        }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar5 + 0x14);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0x14)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar5 + 0x14)" (* "*") (cast_expression "(int *)(iVar5 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00028636;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028636;" (goto "goto") (statement_identifier "LAB_00028636") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar5 + 0x48) < 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x48) < 0" (pointer_expression "*(int *)(iVar5 + 0x48)" (* "*") (cast_expression "(int *)(iVar5 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x48)" (( "(") (binary_expression "iVar5 + 0x48" (identifier "iVar5") (+ "+") (number_literal "0x48")) () ")")))) (< "<") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "(piVar23 != (int *)0x0)" (( "(") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar9 = piVar27[5];\n        iVar8 = piVar23[4];\n        *(int *)(iVar9 + 0x10) = iVar8;\n        if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }\n        piVar27[5] = iVar5;\n        iVar8 = 0;\n        iVar9 = 0;\n        *(int **)(iVar5 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar9 = piVar27[5];" (assignment_expression "iVar9 = piVar27[5]" (identifier "iVar9") (= "=") (subscript_expression "piVar27[5]" (identifier "piVar27") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar8 = piVar23[4];" (assignment_expression "iVar8 = piVar23[4]" (identifier "iVar8") (= "=") (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar9 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (iVar8 == 0) {\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }\n        else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_00091be4 = (int *)(iVar9 + 0x10);\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 != 0) goto LAB_00028f0d;\nLAB_00029143:\n          DAT_00091be4 = piVar23 + 4;\n        }" ({ "{") (expression_statement "DAT_00091be4 = (int *)(iVar9 + 0x10);" (assignment_expression "DAT_00091be4 = (int *)(iVar9 + 0x10)" (identifier "DAT_00091be4") (= "=") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_00028f0d;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028f0d;" (goto "goto") (statement_identifier "LAB_00028f0d") (; ";"))) (labeled_statement "LAB_00029143:\n          DAT_00091be4 = piVar23 + 4;" (statement_identifier "LAB_00029143") (: ":") (expression_statement "DAT_00091be4 = piVar23 + 4;" (assignment_expression "DAT_00091be4 = piVar23 + 4" (identifier "DAT_00091be4") (= "=") (binary_expression "piVar23 + 4" (identifier "piVar23") (+ "+") (number_literal "4"))) (; ";"))) (} "}")) (else_clause "else {\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" (else "else") (compound_statement "{\n          *(int *)(iVar8 + 0x14) = iVar9;\n          piVar23[4] = *(int *)(iVar5 + 0x10);\n          iVar9 = *(int *)(iVar5 + 0x10);\n          if (iVar9 == 0) goto LAB_00029143;\nLAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;\n        }" ({ "{") (expression_statement "*(int *)(iVar8 + 0x14) = iVar9;" (assignment_expression "*(int *)(iVar8 + 0x14) = iVar9" (pointer_expression "*(int *)(iVar8 + 0x14)" (* "*") (cast_expression "(int *)(iVar8 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x14)" (( "(") (binary_expression "iVar8 + 0x14" (identifier "iVar8") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar23[4] = *(int *)(iVar5 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar5 + 0x10)" (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar5 + 0x10);" (assignment_expression "iVar9 = *(int *)(iVar5 + 0x10)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_00029143;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029143;" (goto "goto") (statement_identifier "LAB_00029143") (; ";"))) (labeled_statement "LAB_00028f0d:\n          *(int **)(iVar9 + 0x14) = piVar23;" (statement_identifier "LAB_00028f0d") (: ":") (expression_statement "*(int **)(iVar9 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar9 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar9 + 0x14)" (* "*") (cast_expression "(int **)(iVar9 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "piVar23")) (; ";"))) (} "}")))) (expression_statement "piVar27[5] = iVar5;" (assignment_expression "piVar27[5] = iVar5" (subscript_expression "piVar27[5]" (identifier "piVar27") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar5 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar5 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar5 + 0x10)" (* "*") (cast_expression "(int **)(iVar5 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "piVar27")) (; ";")) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));" (do "do") (compound_statement "{\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }\n        }" ({ "{") (expression_statement "piVar27[0x12] = -2 - piVar27[0x12];" (assignment_expression "piVar27[0x12] = -2 - piVar27[0x12]" (subscript_expression "piVar27[0x12]" (identifier "piVar27") ([ "[") (number_literal "0x12") (] "]")) (= "=") (binary_expression "-2 - piVar27[0x12]" (number_literal "-2") (- "-") (subscript_expression "piVar27[0x12]" (identifier "piVar27") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "iVar25 = piVar27[7];" (assignment_expression "iVar25 = piVar27[7]" (identifier "iVar25") (= "=") (subscript_expression "piVar27[7]" (identifier "piVar27") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {\n            iVar9 = iVar25;\n          }" (if "if") (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0))" (( "(") (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0))" (( "(") (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" (* "*") (cast_expression "(int *)(iVar25 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x94)" (( "(") (binary_expression "iVar25 + 0x94" (identifier "iVar25") (+ "+") (number_literal "0x94")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = iVar25, iVar9 == 0)" (( "(") (comma_expression "iVar8 = iVar25, iVar9 == 0" (assignment_expression "iVar8 = iVar25" (identifier "iVar8") (= "=") (identifier "iVar25")) (, ",") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            iVar9 = iVar25;\n          }" ({ "{") (expression_statement "iVar9 = iVar25;" (assignment_expression "iVar9 = iVar25" (identifier "iVar9") (= "=") (identifier "iVar25")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0))" (( "(") (binary_expression "(piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" (parenthesized_expression "(piVar23 != piVar27)" (( "(") (binary_expression "piVar23 != piVar27" (identifier "piVar23") (!= "!=") (identifier "piVar27")) () ")")) (&& "&&") (parenthesized_expression "(piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0)" (( "(") (comma_expression "piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0" (assignment_expression "piVar27 = (int *)piVar27[4]" (identifier "piVar27") (= "=") (cast_expression "(int *)piVar27[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar27[4]" (identifier "piVar27") ([ "[") (number_literal "4") (] "]")))) (, ",") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (; ";")) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar8 != 0) {\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar25 = *(int *)(iVar5 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar25 = *(int *)(iVar5 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar5 + 0x1c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar5 + 0x1c)" (* "*") (cast_expression "(int *)(iVar5 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            piVar27 = *(int **)(iVar5 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "piVar27 = *(int **)(iVar5 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar5 + 0x14)" (identifier "piVar27") (= "=") (pointer_expression "*(int **)(iVar5 + 0x14)" (* "*") (cast_expression "(int **)(iVar5 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(piVar27 != (int *)0x0)" (( "(") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }" ({ "{") (do_statement "do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);" (do "do") (compound_statement "{\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;\n                piVar27 = (int *)piVar27[5];\n              }" ({ "{") (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;" (if "if") (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0))" (( "(") (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0x94) != 0)" (parenthesized_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0))" (( "(") (binary_expression "(-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)" (parenthesized_expression "(-1 < piVar27[0x12])" (( "(") (binary_expression "-1 < piVar27[0x12]" (number_literal "-1") (< "<") (subscript_expression "piVar27[0x12]" (identifier "piVar27") ([ "[") (number_literal "0x12") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(iVar25 = piVar27[7], iVar25 != 0)" (( "(") (comma_expression "iVar25 = piVar27[7], iVar25 != 0" (assignment_expression "iVar25 = piVar27[7]" (identifier "iVar25") (= "=") (subscript_expression "piVar27[7]" (identifier "piVar27") ([ "[") (number_literal "7") (] "]"))) (, ",") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar25 + 0x94) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + 0x94) != 0" (pointer_expression "*(int *)(iVar25 + 0x94)" (* "*") (cast_expression "(int *)(iVar25 + 0x94)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x94)" (( "(") (binary_expression "iVar25 + 0x94" (identifier "iVar25") (+ "+") (number_literal "0x94")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00028f6a;" (goto "goto") (statement_identifier "LAB_00028f6a") (; ";"))) (expression_statement "piVar27 = (int *)piVar27[5];" (assignment_expression "piVar27 = (int *)piVar27[5]" (identifier "piVar27") (= "=") (cast_expression "(int *)piVar27[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar27[5]" (identifier "piVar27") ([ "[") (number_literal "5") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar27 != (int *)0x0)" (( "(") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" (else "else") (compound_statement "{\nLAB_00028f6a:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }\n          }" ({ "{") (labeled_statement "LAB_00028f6a:\n            piVar27 = (int *)0x0;" (statement_identifier "LAB_00028f6a") (: ":") (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (if_statement "if (iVar25 != iVar8) {\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" (if "if") (parenthesized_expression "(iVar25 != iVar8)" (( "(") (binary_expression "iVar25 != iVar8" (identifier "iVar25") (!= "!=") (identifier "iVar8")) () ")")) (compound_statement "{\n              iVar5 = *(int *)(iVar9 + 0x10);\n              iVar28 = *(int *)(iVar8 + 0xc);\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }\n              iVar5 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar8 + 0xc) = iVar5;\n              if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }\n              *(int *)(iVar9 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar9;\n            }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar9 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar9 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00091c50 + 0x60) = iVar28;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00091c50 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00091c50 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x60)" (( "(") (binary_expression "DAT_00091c50 + 0x60" (identifier "DAT_00091c50") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar5 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar8 + 0xc);\n              }" ({ "{") (expression_statement "*(int *)(iVar5 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar5 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (expression_statement "iVar28 = *(int *)(iVar8 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar8 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar5;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar5;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar5" (pointer_expression "*(int *)(DAT_00091c50 + 100)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 100)" (( "(") (binary_expression "DAT_00091c50 + 100" (identifier "DAT_00091c50") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar5;\n              }" ({ "{") (expression_statement "*(int *)(iVar28 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar28 + 0x10)" (* "*") (cast_expression "(int *)(iVar28 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x10)" (( "(") (binary_expression "iVar28 + 0x10" (identifier "iVar28") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (} "}")))) (expression_statement "iVar5 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar25 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar25 + 0xc)" (* "*") (cast_expression "(int *)(iVar25 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xc)" (( "(") (binary_expression "iVar25 + 0xc" (identifier "iVar25") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar8 + 0xc) = iVar5;" (assignment_expression "*(int *)(iVar8 + 0xc) = iVar5" (pointer_expression "*(int *)(iVar8 + 0xc)" (* "*") (cast_expression "(int *)(iVar8 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0xc)" (( "(") (binary_expression "iVar8 + 0xc" (identifier "iVar8") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 == 0) {\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }\n              else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00091c50 + 100) = iVar8;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00091c50 + 100) = iVar8;" (assignment_expression "*(int *)(DAT_00091c50 + 100) = iVar8" (pointer_expression "*(int *)(DAT_00091c50 + 100)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 100)" (( "(") (binary_expression "DAT_00091c50 + 100" (identifier "DAT_00091c50") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar5 + 0x10) = iVar8;\n              }" ({ "{") (expression_statement "*(int *)(iVar5 + 0x10) = iVar8;" (assignment_expression "*(int *)(iVar5 + 0x10) = iVar8" (pointer_expression "*(int *)(iVar5 + 0x10)" (* "*") (cast_expression "(int *)(iVar5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x10)" (( "(") (binary_expression "iVar5 + 0x10" (identifier "iVar5") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (} "}")))) (expression_statement "*(int *)(iVar9 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar9 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar9 + 0x10)" (* "*") (cast_expression "(int *)(iVar9 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x10)" (( "(") (binary_expression "iVar9 + 0x10" (identifier "iVar9") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar25")) (; ";")) (expression_statement "piVar27 = (int *)0x0;" (assignment_expression "piVar27 = (int *)0x0" (identifier "piVar27") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(int *)(iVar25 + 0xc) = iVar9;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar9" (pointer_expression "*(int *)(iVar25 + 0xc)" (* "*") (cast_expression "(int *)(iVar25 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xc)" (( "(") (binary_expression "iVar25 + 0xc" (identifier "iVar25") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "piVar24 = (int *)FUN_0001dd70();" (assignment_expression "piVar24 = (int *)FUN_0001dd70()" (identifier "piVar24") (= "=") (cast_expression "(int *)FUN_0001dd70()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001dd70()" (identifier "FUN_0001dd70") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar5 = *DAT_00091be0;" (assignment_expression "iVar5 = *DAT_00091be0" (identifier "iVar5") (= "=") (pointer_expression "*DAT_00091be0" (* "*") (identifier "DAT_00091be0"))) (; ";")) (expression_statement "*DAT_00091be0 = *(int *)*piVar29;" (assignment_expression "*DAT_00091be0 = *(int *)*piVar29" (pointer_expression "*DAT_00091be0" (* "*") (identifier "DAT_00091be0")) (= "=") (pointer_expression "*(int *)*piVar29" (* "*") (cast_expression "(int *)*piVar29" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar29" (* "*") (identifier "piVar29"))))) (; ";")) (expression_statement "iVar9 = *piVar24;" (assignment_expression "iVar9 = *piVar24" (identifier "iVar9") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (expression_statement "*piVar29 = iVar9;" (assignment_expression "*piVar29 = iVar9" (pointer_expression "*piVar29" (* "*") (identifier "piVar29")) (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar9 == 0) {\n        DAT_0009184c = piVar29;\n      }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_0009184c = piVar29;\n      }" ({ "{") (expression_statement "DAT_0009184c = piVar29;" (assignment_expression "DAT_0009184c = piVar29" (identifier "DAT_0009184c") (= "=") (identifier "piVar29")) (; ";")) (} "}"))) (expression_statement "*piVar24 = iVar5;" (assignment_expression "*piVar24 = iVar5" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" (identifier "piVar23") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" (identifier "piVar26") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "piVar14 = DAT_00091be0;" (assignment_expression "piVar14 = DAT_00091be0" (identifier "piVar14") (= "=") (identifier "DAT_00091be0")) (; ";")) (goto_statement "goto LAB_0002855c;" (goto "goto") (statement_identifier "LAB_0002855c") (; ";")) (} "}"))) (labeled_statement "LAB_00028636:\n    iVar5 = piVar24[2];" (statement_identifier "LAB_00028636") (: ":") (expression_statement "iVar5 = piVar24[2];" (assignment_expression "iVar5 = piVar24[2]" (identifier "iVar5") (= "=") (subscript_expression "piVar24[2]" (identifier "piVar24") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: %s not found for insert\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: %s not found for insert\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: %s not found for insert\n"" (" """) (string_content "%F%P: %s not found for insert") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6,iVar5);" (call_expression "FUN_00031760(uVar6,iVar5)" (identifier "FUN_00031760") (argument_list "(uVar6,iVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" (identifier "puVar15") (= "=") (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" (identifier "PTR__bfd_std_section_00090fc4") (+ "+") (number_literal "0x150"))) (; ";")) (for_statement "for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_0009179c" (identifier "piVar24") (= "=") (identifier "DAT_0009179c")) (; ";") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) () ")") (compound_statement "{\n    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "puVar13 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(piVar24[4] + 0x60)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(piVar24[4] + 0x60)" (* "*") (cast_expression "(undefined4 **)(piVar24[4] + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar24[4] + 0x60)" (( "(") (binary_expression "piVar24[4] + 0x60" (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (labeled_statement "joined_r0x00028684:\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" (statement_identifier "joined_r0x00028684") (: ":") (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      } while( true );" (do "do") (compound_statement "{\n        if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }\n        puVar13 = (undefined4 *)puVar13[3];\n        if (puVar13 == (undefined4 *)0x0) break;\n      }" ({ "{") (if_statement "if (puVar13[0xf] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" (if "if") (parenthesized_expression "(puVar13[0xf] == 0)" (( "(") (binary_expression "puVar13[0xf] == 0" (subscript_expression "puVar13[0xf]" (identifier "puVar13") ([ "[") (number_literal "0xf") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;\n          iVar5 = FUN_0001eff0();\n          bVar31 = false;\n          bVar32 = iVar5 == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }\n        }" ({ "{") (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;" (if "if") (parenthesized_expression "((*(byte *)(piVar24 + 9) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(piVar24 + 9) & 0x10) != 0" (parenthesized_expression "(*(byte *)(piVar24 + 9) & 0x10)" (( "(") (binary_expression "*(byte *)(piVar24 + 9) & 0x10" (pointer_expression "*(byte *)(piVar24 + 9)" (* "*") (cast_expression "(byte *)(piVar24 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24 + 9)" (( "(") (binary_expression "piVar24 + 9" (identifier "piVar24") (+ "+") (number_literal "9")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000286ac;" (goto "goto") (statement_identifier "code_r0x000286ac") (; ";"))) (expression_statement "iVar5 = FUN_0001eff0();" (assignment_expression "iVar5 = FUN_0001eff0()" (identifier "iVar5") (= "=") (call_expression "FUN_0001eff0()" (identifier "FUN_0001eff0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" (identifier "bVar31") (= "=") (false "false")) (; ";")) (expression_statement "bVar32 = iVar5 == 0;" (assignment_expression "bVar32 = iVar5 == 0" (identifier "bVar32") (= "=") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }\n          else {\n            puVar13[0xf] = puVar15;\n          }" (if "if") (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (compound_statement "{\n            pbVar3 = (byte *)*puVar13;\n            iVar5 = 7;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)"COMMON";\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }\n          }" ({ "{") (expression_statement "pbVar3 = (byte *)*puVar13;" (assignment_expression "pbVar3 = (byte *)*puVar13" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*puVar13" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "iVar5 = 7;" (assignment_expression "iVar5 = 7" (identifier "iVar5") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" (identifier "pbVar17") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar30 = (byte *)"COMMON";" (assignment_expression "pbVar30 = (byte *)"COMMON"" (identifier "pbVar30") (= "=") (cast_expression "(byte *)"COMMON"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""COMMON"" (" """) (string_content "COMMON") (" """)))) (; ";")) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" (do "do") (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" (identifier "bVar31") (= "=") (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")))) (; ";")) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" (identifier "bVar32") (= "=") (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar33")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" (identifier "pbVar30") (= "=") (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" (identifier "pbVar30") (+ "+") (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar33")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (; ";")) (if_statement "if ((!bVar31 && !bVar32) == bVar31) {\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }\n            else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" (if "if") (parenthesized_expression "((!bVar31 && !bVar32) == bVar31)" (( "(") (binary_expression "(!bVar31 && !bVar32) == bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" (( "(") (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" (! "!") (identifier "bVar31")) (&& "&&") (unary_expression "!bVar32" (! "!") (identifier "bVar32"))) () ")")) (== "==") (identifier "bVar31")) () ")")) (compound_statement "{\n              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }\n            }" ({ "{") (if_statement "if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" (if "if") (parenthesized_expression "((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0))" (( "(") (binary_expression "(((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(DAT_00091cc0 != 0)" (( "(") (binary_expression "DAT_00091cc0 != 0" (identifier "DAT_00091cc0") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }\n                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);\n              }" ({ "{") (if_statement "if (DAT_0009185c == 0) {\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" (if "if") (parenthesized_expression "(DAT_0009185c == 0)" (( "(") (binary_expression "DAT_0009185c == 0" (identifier "DAT_0009185c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  DAT_0009185c = FUN_00022cf0(".bss",0,1);\n                }" ({ "{") (expression_statement "DAT_0009185c = FUN_00022cf0(".bss",0,1);" (assignment_expression "DAT_0009185c = FUN_00022cf0(".bss",0,1)" (identifier "DAT_0009185c") (= "=") (call_expression "FUN_00022cf0(".bss",0,1)" (identifier "FUN_00022cf0") (argument_list "(".bss",0,1)" (( "(") (string_literal "".bss"" (" """) (string_content ".bss") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);" (call_expression "FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" (identifier "FUN_00023ba0") (argument_list "(DAT_0009185c + 8,puVar13,0,DAT_0009185c)" (( "(") (binary_expression "DAT_0009185c + 8" (identifier "DAT_0009185c") (+ "+") (number_literal "8")) (, ",") (identifier "puVar13") (, ",") (number_literal "0") (, ",") (identifier "DAT_0009185c") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" (else "else") (if_statement "if (DAT_00091d3c == 1) {\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }\n            else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" (if "if") (parenthesized_expression "(DAT_00091d3c == 1)" (( "(") (binary_expression "DAT_00091d3c == 1" (identifier "DAT_00091d3c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              iVar5 = FUN_00022cf0("/DISCARD/",0,1);\n              if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }\n              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n            }" ({ "{") (expression_statement "iVar5 = FUN_00022cf0("/DISCARD/",0,1);" (assignment_expression "iVar5 = FUN_00022cf0("/DISCARD/",0,1)" (identifier "iVar5") (= "=") (call_expression "FUN_00022cf0("/DISCARD/",0,1)" (identifier "FUN_00022cf0") (argument_list "("/DISCARD/",0,1)" (( "(") (string_literal ""/DISCARD/"" (" """) (string_content "/DISCARD/") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" (( "(") (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" (* "*") (cast_expression "(int *)(iVar5 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (( "(") (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" (( "(") (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" (* "*") (cast_expression "(byte *)(puVar13 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 5)" (( "(") (binary_expression "puVar13 + 5" (identifier "puVar13") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                uVar6 = FUN_0002f3c0(0);\n                *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n              }" ({ "{") (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" (identifier "uVar6") (= "=") (call_expression "FUN_0002f3c0(0)" (identifier "FUN_0002f3c0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" (identifier "FUN_00023ba0") (argument_list "(iVar5 + 8,puVar13,0,iVar5)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) (, ",") (identifier "puVar13") (, ",") (number_literal "0") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" (else "else") (compound_statement "{\n              if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }\n              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }\n              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);\n              if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }\n              if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }\n            }" ({ "{") (if_statement "if (DAT_00091d3c == 3) {\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" (if "if") (parenthesized_expression "(DAT_00091d3c == 3)" (( "(") (binary_expression "DAT_00091d3c == 3" (identifier "DAT_00091d3c") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                uVar6 = puVar13[0x25];\n                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00031760(uVar12,puVar13,uVar6);\n              }" ({ "{") (expression_statement "uVar6 = puVar13[0x25];" (assignment_expression "uVar6 = puVar13[0x25]" (identifier "uVar6") (= "=") (subscript_expression "puVar13[0x25]" (identifier "puVar13") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"" (" """) (string_content "%X%P: error: unplaced orphan section `%pA") (escape_sequence "\'") (string_content " from `%pB") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,puVar13,uVar6);" (call_expression "FUN_00031760(uVar12,puVar13,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,puVar13,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "puVar13") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {\n                uVar6 = 0;\n              }\n              else {\n                uVar6 = 0x17e;\n              }" (if "if") (parenthesized_expression "((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0))" (( "(") (binary_expression "(DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)" (parenthesized_expression "(DAT_00091d58 == 0)" (( "(") (binary_expression "DAT_00091d58 == 0" (identifier "DAT_00091d58") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = FUN_00020cd0(), iVar5 == 0)" (( "(") (comma_expression "iVar5 = FUN_00020cd0(), iVar5 == 0" (assignment_expression "iVar5 = FUN_00020cd0()" (identifier "iVar5") (= "=") (call_expression "FUN_00020cd0()" (identifier "FUN_00020cd0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                uVar6 = 0;\n              }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar6 = 0x17e;\n              }" (else "else") (compound_statement "{\n                uVar6 = 0x17e;\n              }" ({ "{") (expression_statement "uVar6 = 0x17e;" (assignment_expression "uVar6 = 0x17e" (identifier "uVar6") (= "=") (number_literal "0x17e")) (; ";")) (} "}")))) (expression_statement "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);" (assignment_expression "iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6)" (identifier "iVar5") (= "=") (call_expression "FUN_000300e0(puVar13,pbVar3,uVar6)" (identifier "FUN_000300e0") (argument_list "(puVar13,pbVar3,uVar6)" (( "(") (identifier "puVar13") (, ",") (identifier "pbVar3") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);\n                if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }\n                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);\n              }" ({ "{") (expression_statement "iVar5 = FUN_00022cf0(pbVar3,uVar6,1);" (assignment_expression "iVar5 = FUN_00022cf0(pbVar3,uVar6,1)" (identifier "iVar5") (= "=") (call_expression "FUN_00022cf0(pbVar3,uVar6,1)" (identifier "FUN_00022cf0") (argument_list "(pbVar3,uVar6,1)" (( "(") (identifier "pbVar3") (, ",") (identifier "uVar6") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" (if "if") (parenthesized_expression "((*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))))" (( "(") (binary_expression "(*(int *)(iVar5 + 0x2c) == 0) &&\n                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar5 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x2c) == 0" (pointer_expression "*(int *)(iVar5 + 0x2c)" (* "*") (cast_expression "(int *)(iVar5 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))" (( "(") (parenthesized_expression "(((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0))" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)" (binary_expression "((byte)DAT_00091c20 & 3) == 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar13 + 5) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar13 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 3)" (( "(") (binary_expression "*(byte *)(puVar13 + 5) & 3" (pointer_expression "*(byte *)(puVar13 + 5)" (* "*") (cast_expression "(byte *)(puVar13 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 5)" (( "(") (binary_expression "puVar13 + 5" (identifier "puVar13") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  uVar6 = FUN_0002f3c0(0);\n                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;\n                }" ({ "{") (expression_statement "uVar6 = FUN_0002f3c0(0);" (assignment_expression "uVar6 = FUN_0002f3c0(0)" (identifier "uVar6") (= "=") (call_expression "FUN_0002f3c0(0)" (identifier "FUN_0002f3c0") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0x2c) = uVar6;" (assignment_expression "*(undefined4 *)(iVar5 + 0x2c) = uVar6" (pointer_expression "*(undefined4 *)(iVar5 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x2c)" (( "(") (binary_expression "iVar5 + 0x2c" (identifier "iVar5") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (expression_statement "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);" (call_expression "FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5)" (identifier "FUN_00023ba0") (argument_list "(iVar5 + 8,puVar13,0,iVar5)" (( "(") (binary_expression "iVar5 + 8" (identifier "iVar5") (+ "+") (number_literal "8")) (, ",") (identifier "puVar13") (, ",") (number_literal "0") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00091d3c == 2) {\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" (if "if") (parenthesized_expression "(DAT_00091d3c == 2)" (( "(") (binary_expression "DAT_00091d3c == 2" (identifier "DAT_00091d3c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                uVar6 = *(undefined4 *)(iVar5 + 0x18);\n                uVar12 = puVar13[0x25];\n                uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00031760(uVar18,puVar13,uVar12,uVar6);\n              }" ({ "{") (expression_statement "uVar6 = *(undefined4 *)(iVar5 + 0x18);" (assignment_expression "uVar6 = *(undefined4 *)(iVar5 + 0x18)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar12 = puVar13[0x25];" (assignment_expression "uVar12 = puVar13[0x25]" (identifier "uVar12") (= "=") (subscript_expression "puVar13[0x25]" (identifier "puVar13") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" (identifier "dcgettext") (argument_list "(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"" (" """) (string_content "%P: warning: orphan section `%pA") (escape_sequence "\'") (string_content " from `%pB") (escape_sequence "\'") (string_content " being placed in section `%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar18,puVar13,uVar12,uVar6);" (call_expression "FUN_00031760(uVar18,puVar13,uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar18,puVar13,uVar12,uVar6)" (( "(") (identifier "uVar18") (, ",") (identifier "puVar13") (, ",") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}")))))) (} "}")) (else_clause "else {\n            puVar13[0xf] = puVar15;\n          }" (else "else") (compound_statement "{\n            puVar13[0xf] = puVar15;\n          }" ({ "{") (expression_statement "puVar13[0xf] = puVar15;" (assignment_expression "puVar13[0xf] = puVar15" (subscript_expression "puVar13[0xf]" (identifier "puVar13") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "puVar15")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar13 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (} "}"))) (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" (identifier "bVar19") (= "=") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" (identifier "piVar24") (= "=") (identifier "DAT_000917cc")) (; ";")) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" (identifier "piVar26") (= "=") (identifier "DAT_00091be0")) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (if_statement "if (bVar19 != 2) {\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar19 != 2)" (( "(") (binary_expression "bVar19 != 2" (identifier "bVar19") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);\n    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");\n    if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00091c50 + 4) + 0x18c)" (( "(") (binary_expression "*(int *)(DAT_00091c50 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00091c50 + 4)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 4)" (( "(") (binary_expression "DAT_00091c50 + 4" (identifier "DAT_00091c50") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18c")) () ")"))))) () ")")) (argument_list "(DAT_00091c50,&DAT_00091c20)" (( "(") (identifier "DAT_00091c50") (, ",") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20")) () ")"))) (; ";")) (expression_statement "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");" (assignment_expression "iVar5 = bfd_get_section_by_name(DAT_00091c50,".text")" (identifier "iVar5") (= "=") (call_expression "bfd_get_section_by_name(DAT_00091c50,".text")" (identifier "bfd_get_section_by_name") (argument_list "(DAT_00091c50,".text")" (( "(") (identifier "DAT_00091c50") (, ",") (string_literal "".text"" (" """) (string_content ".text") (" """)) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }\n    else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      piVar24 = DAT_000917cc;\n      piVar26 = DAT_00091be0;\n      iVar5 = DAT_00091c50;\n    }" ({ "{") (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" (identifier "bVar19") (= "=") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" (identifier "piVar24") (= "=") (identifier "DAT_000917cc")) (; ";")) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" (identifier "piVar26") (= "=") (identifier "DAT_00091be0")) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (} "}")) (else_clause "else {\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" (else "else") (compound_statement "{\n      bVar19 = (byte)DAT_00091c20 & 3;\n      if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n    }" ({ "{") (expression_statement "bVar19 = (byte)DAT_00091c20 & 3;" (assignment_expression "bVar19 = (byte)DAT_00091c20 & 3" (identifier "bVar19") (= "=") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3"))) (; ";")) (if_statement "if (DAT_00091d50 == 0) {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }\n      else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" (if "if") (parenthesized_expression "(DAT_00091d50 == 0)" (( "(") (binary_expression "DAT_00091d50 == 0" (identifier "DAT_00091d50") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" ({ "{") (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar5 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xfffffff7"))) (; ";")) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" (identifier "piVar24") (= "=") (identifier "DAT_000917cc")) (; ";")) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" (identifier "piVar26") (= "=") (identifier "DAT_00091be0")) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" (else "else") (compound_statement "{\n        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;\n        piVar24 = DAT_000917cc;\n        piVar26 = DAT_00091be0;\n        iVar5 = DAT_00091c50;\n      }" ({ "{") (expression_statement "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar5 + 0x14) | 8" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" (identifier "piVar24") (= "=") (identifier "DAT_000917cc")) (; ";")) (expression_statement "piVar26 = DAT_00091be0;" (assignment_expression "piVar26 = DAT_00091be0" (identifier "piVar26") (= "=") (identifier "DAT_00091be0")) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (for_statement "for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" (for "for") (( "(") (; ";") (comma_expression "DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_000917cc = piVar24" (identifier "DAT_000917cc") (= "=") (identifier "piVar24")) (, ",") (comma_expression "DAT_00091c50 = iVar5, piVar26 != (int *)0x0" (assignment_expression "DAT_00091c50 = iVar5" (identifier "DAT_00091c50") (= "=") (identifier "iVar5")) (, ",") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))))) (; ";") (assignment_expression "piVar26 = (int *)piVar26[4]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n    iVar5 = piVar26[5];\n    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }\n    piVar24 = DAT_000917cc;\n    iVar5 = DAT_00091c50;\n  }" ({ "{") (expression_statement "iVar5 = piVar26[5];" (assignment_expression "iVar5 = piVar26[5]" (identifier "iVar5") (= "=") (subscript_expression "piVar26[5]" (identifier "piVar26") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" (if "if") (parenthesized_expression "((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))))" (( "(") (binary_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" (parenthesized_expression "(((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" (( "(") (binary_expression "((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar5 != 0) && (piVar26[9] == 0))" (( "(") (binary_expression "(iVar5 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar26[9] == 0)" (( "(") (binary_expression "piVar26[9] == 0" (subscript_expression "piVar26[9]" (identifier "piVar26") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar26[0xc] == 0)" (( "(") (binary_expression "piVar26[0xc] == 0" (subscript_expression "piVar26[0xc]" (identifier "piVar26") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))" (( "(") (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20)))" (( "(") (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" (identifier "piVar26") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(piVar26[8] == *(int *)(iVar5 + 0x20))" (( "(") (binary_expression "piVar26[8] == *(int *)(iVar5 + 0x20)" (subscript_expression "piVar26[8]" (identifier "piVar26") ([ "[") (number_literal "8") (] "]")) (== "==") (pointer_expression "*(int *)(iVar5 + 0x20)" (* "*") (cast_expression "(int *)(iVar5 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x20)" (( "(") (binary_expression "iVar5 + 0x20" (identifier "iVar5") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      piVar26[9] = *(int *)(iVar5 + 0x24);\n    }" ({ "{") (expression_statement "piVar26[9] = *(int *)(iVar5 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar5 + 0x24)" (subscript_expression "piVar26[9]" (identifier "piVar26") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar24 = DAT_000917cc;" (assignment_expression "piVar24 = DAT_000917cc" (identifier "piVar24") (= "=") (identifier "DAT_000917cc")) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (} "}"))) (if_statement "if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" (if "if") (parenthesized_expression "((DAT_00091d2c != 0) && (DAT_000917c8 != 0))" (( "(") (binary_expression "(DAT_00091d2c != 0) && (DAT_000917c8 != 0)" (parenthesized_expression "(DAT_00091d2c != 0)" (( "(") (binary_expression "DAT_00091d2c != 0" (identifier "DAT_00091d2c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_000917c8 != 0)" (( "(") (binary_expression "DAT_000917c8 != 0" (identifier "DAT_000917c8") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    piVar26 = piVar24 + DAT_000917c8;\n    do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" ({ "{") (expression_statement "piVar26 = piVar24 + DAT_000917c8;" (assignment_expression "piVar26 = piVar24 + DAT_000917c8" (identifier "piVar26") (= "=") (binary_expression "piVar24 + DAT_000917c8" (identifier "piVar24") (+ "+") (identifier "DAT_000917c8"))) (; ";")) (do_statement "do {\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" (do "do") (compound_statement "{\n      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }\n      piVar24 = piVar24 + 1;\n    }" ({ "{") (while_statement "while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" (while "while") (parenthesized_expression "(iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0)" (( "(") (comma_expression "iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0" (assignment_expression "iVar9 = *piVar24" (identifier "iVar9") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (, ",") (binary_expression "(*(byte *)(iVar9 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar9 + 0xd) & 8)" (( "(") (binary_expression "*(byte *)(iVar9 + 0xd) & 8" (pointer_expression "*(byte *)(iVar9 + 0xd)" (* "*") (cast_expression "(byte *)(iVar9 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xd)" (( "(") (binary_expression "iVar9 + 0xd" (identifier "iVar9") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];\n        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_000288f7;\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];" (assignment_expression "puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*(undefined4 **)(iVar9 + 0x14))[0xf]" (parenthesized_expression "(*(undefined4 **)(iVar9 + 0x14))" (( "(") (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) () ")")) ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (if_statement "if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" (if "if") (parenthesized_expression "(((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0))" (( "(") (binary_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||\n           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" (parenthesized_expression "((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5))" (( "(") (binary_expression "(puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)" (parenthesized_expression "(puVar13 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 == (undefined4 *)0x0" (identifier "puVar13") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar13[0x25] != iVar5)" (( "(") (binary_expression "puVar13[0x25] != iVar5" (subscript_expression "puVar13[0x25]" (identifier "puVar13") ([ "[") (number_literal "0x25") (] "]")) (!= "!=") (identifier "iVar5")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)" (( "(") (comma_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0" (assignment_expression "iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" (identifier "iVar8") (= "=") (call_expression "strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" (identifier "strcmp") (argument_list "((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13)" (( "(") (cast_expression "(char *)**(undefined4 **)(iVar9 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar9 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))))) (, ",") (cast_expression "(char *)*puVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)(iVar9 + 0xc) = 1;\n          *(undefined4 *)(iVar9 + 0x14) = 0;\n          break;\n        }" ({ "{") (expression_statement "*(undefined1 *)(iVar9 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar9 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar9 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar9 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar9 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar9 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 1" (identifier "piVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar24 == piVar26) goto LAB_000288f7;" (if "if") (parenthesized_expression "(piVar24 == piVar26)" (( "(") (binary_expression "piVar24 == piVar26" (identifier "piVar24") (== "==") (identifier "piVar26")) () ")")) (goto_statement "goto LAB_000288f7;" (goto "goto") (statement_identifier "LAB_000288f7") (; ";"))) (} "}"))) (expression_statement "piVar24 = piVar24 + 1;" (assignment_expression "piVar24 = piVar24 + 1" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 1" (identifier "piVar24") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar24 != piVar26)" (( "(") (binary_expression "piVar24 != piVar26" (identifier "piVar24") (!= "!=") (identifier "piVar26")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000288f7:\n  if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" (statement_identifier "LAB_000288f7") (: ":") (if_statement "if (bVar19 != 2) {\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" (if "if") (parenthesized_expression "(bVar19 != 2)" (( "(") (binary_expression "bVar19 != 2" (identifier "bVar19") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }\n  }" ({ "{") (for_statement "for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;\n        puVar13 = (undefined4 *)puVar13[3]) {\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" (for "for") (( "(") (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x60)" (( "(") (binary_expression "DAT_00091c50 + 0x60" (identifier "DAT_00091c50") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n      pcVar10 = (char *)*puVar13;\n      sVar7 = strlen(pcVar10);\n      pcVar11 = (char *)xmalloc(sVar7 + 10);\n      sprintf(pcVar11,".startof.%s",pcVar10);\n      FUN_0001eaf0();\n      builtin_strncpy(pcVar11 + 1,".size",5);\n      FUN_0001eaf0();\n      free(pcVar11);\n    }" ({ "{") (expression_statement "pcVar10 = (char *)*puVar13;" (assignment_expression "pcVar10 = (char *)*puVar13" (identifier "pcVar10") (= "=") (cast_expression "(char *)*puVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) (; ";")) (expression_statement "sVar7 = strlen(pcVar10);" (assignment_expression "sVar7 = strlen(pcVar10)" (identifier "sVar7") (= "=") (call_expression "strlen(pcVar10)" (identifier "strlen") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")")))) (; ";")) (expression_statement "pcVar11 = (char *)xmalloc(sVar7 + 10);" (assignment_expression "pcVar11 = (char *)xmalloc(sVar7 + 10)" (identifier "pcVar11") (= "=") (cast_expression "(char *)xmalloc(sVar7 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar7 + 10)" (identifier "xmalloc") (argument_list "(sVar7 + 10)" (( "(") (binary_expression "sVar7 + 10" (identifier "sVar7") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar11,".startof.%s",pcVar10);" (call_expression "sprintf(pcVar11,".startof.%s",pcVar10)" (identifier "sprintf") (argument_list "(pcVar11,".startof.%s",pcVar10)" (( "(") (identifier "pcVar11") (, ",") (string_literal "".startof.%s"" (" """) (string_content ".startof.%s") (" """)) (, ",") (identifier "pcVar10") () ")"))) (; ";")) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" (identifier "FUN_0001eaf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "builtin_strncpy(pcVar11 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar11 + 1,".size",5)" (identifier "builtin_strncpy") (argument_list "(pcVar11 + 1,".size",5)" (( "(") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1")) (, ",") (string_literal "".size"" (" """) (string_content ".size") (" """)) (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_0001eaf0();" (call_expression "FUN_0001eaf0()" (identifier "FUN_0001eaf0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(pcVar11);" (call_expression "free(pcVar11)" (identifier "free") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_0002ffd0();" (call_expression "FUN_0002ffd0()" (identifier "FUN_0002ffd0") (argument_list "()" (( "(") () ")"))) (; ";")) (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 "local_4c = (void *)xmalloc(0x28);" (assignment_expression "local_4c = (void *)xmalloc(0x28)" (identifier "local_4c") (= "=") (cast_expression "(void *)xmalloc(0x28)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x28)" (identifier "xmalloc") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")"))))) (; ";")) (expression_statement "local_44 = 10;" (assignment_expression "local_44 = 10" (identifier "local_44") (= "=") (number_literal "10")) (; ";")) (for_statement "for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" (for "for") (( "(") (assignment_expression "puVar13 = DAT_00091bd8" (identifier "puVar13") (= "=") (identifier "DAT_00091bd8")) (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)*puVar13" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")))) () ")") (compound_statement "{\n    local_50 = (int *)0x0;\n    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar6 = 0;\n    if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }\n    iVar5 = puVar13[5];\n    uVar12 = 0;\n    if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }\n    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);\n    if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }\n  }" ({ "{") (expression_statement "local_50 = (int *)0x0;" (assignment_expression "local_50 = (int *)0x0" (identifier "local_50") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" (for "for") (( "(") (assignment_expression "piVar26 = DAT_00091be0" (identifier "piVar26") (= "=") (identifier "DAT_00091be0")) (; ";") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar26 = (int *)piVar26[4]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar26[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n      if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if (-1 < piVar26[0x12]) {\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(-1 < piVar26[0x12])" (( "(") (binary_expression "-1 < piVar26[0x12]" (number_literal "-1") (< "<") (subscript_expression "piVar26[0x12]" (identifier "piVar26") ([ "[") (number_literal "0x12") (] "]"))) () ")")) (compound_statement "{\n        piVar23 = (int *)piVar26[0xe];\n        if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }\n      }" ({ "{") (expression_statement "piVar23 = (int *)piVar26[0xe];" (assignment_expression "piVar23 = (int *)piVar26[0xe]" (identifier "piVar23") (= "=") (cast_expression "(int *)piVar26[0xe]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[0xe]" (identifier "piVar26") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (if_statement "if (piVar23 == (int *)0x0) {\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" (if "if") (parenthesized_expression "(piVar23 == (int *)0x0)" (( "(") (binary_expression "piVar23 == (int *)0x0" (identifier "piVar23") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }\n        }" ({ "{") (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" (if "if") (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))))" (( "(") (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" (parenthesized_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0))" (( "(") (binary_expression "(piVar26[0x14] != 2) && (piVar26[7] != 0)" (parenthesized_expression "(piVar26[0x14] != 2)" (( "(") (binary_expression "piVar26[0x14] != 2" (subscript_expression "piVar26[0x14]" (identifier "piVar26") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(piVar26[7] != 0)" (( "(") (binary_expression "piVar26[7] != 0" (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))" (( "(") (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3))" (( "(") (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0" (parenthesized_expression "(*(byte *)(piVar26[7] + 0x14) & 1)" (( "(") (binary_expression "*(byte *)(piVar26[7] + 0x14) & 1" (pointer_expression "*(byte *)(piVar26[7] + 0x14)" (* "*") (cast_expression "(byte *)(piVar26[7] + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar26[7] + 0x14)" (( "(") (binary_expression "piVar26[7] + 0x14" (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)" (( "(") (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar27 = piVar26" (identifier "piVar27") (= "=") (identifier "piVar26")) (, ",") (comma_expression "piVar23 = piVar24, puVar13[2] != 3" (assignment_expression "piVar23 = piVar24" (identifier "piVar23") (= "=") (identifier "piVar24")) (, ",") (binary_expression "puVar13[2] != 3" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "3")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00031760(uVar6);\n          }" ({ "{") (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000289ba;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }" ({ "{") (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" (identifier "piVar24") (= "=") (identifier "piVar23")) (; ";")) (if_statement "if (piVar23 != (int *)0x0) goto LAB_000289ba;" (if "if") (parenthesized_expression "(piVar23 != (int *)0x0)" (( "(") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000289ba;" (goto "goto") (statement_identifier "LAB_000289ba") (; ";"))) (expression_statement "piVar27 = (int *)piVar27[4];" (assignment_expression "piVar27 = (int *)piVar27[4]" (identifier "piVar27") (= "=") (cast_expression "(int *)piVar27[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar27[4]" (identifier "piVar27") ([ "[") (number_literal "4") (] "]")))) (; ";")) (if_statement "if (piVar27 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar27 == (int *)0x0)" (( "(") (binary_expression "piVar27 == (int *)0x0" (identifier "piVar27") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar23 = (int *)piVar27[0xe];" (assignment_expression "piVar23 = (int *)piVar27[0xe]" (identifier "piVar23") (= "=") (cast_expression "(int *)piVar27[0xe]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar27[0xe]" (identifier "piVar27") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (} "}"))) (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 "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: no sections assigned to phdrs\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: no sections assigned to phdrs\n"" (" """) (string_content "%F%P: no sections assigned to phdrs") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" (identifier "FUN_00031760") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" (else "else") (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }\n        }" ({ "{") (expression_statement "piVar24 = piVar23;" (assignment_expression "piVar24 = piVar23" (identifier "piVar24") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "piVar27 = (int *)piVar26[7];" (assignment_expression "piVar27 = (int *)piVar26[7]" (identifier "piVar27") (= "=") (cast_expression "(int *)piVar26[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")))) (; ";")) (while_statement "while (piVar27 != (int *)0x0) {\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" (while "while") (parenthesized_expression "(piVar27 != (int *)0x0)" (( "(") (binary_expression "piVar27 != (int *)0x0" (identifier "piVar27") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);\n            uVar21 = local_44;\n            if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar21;\n            piVar27 = piVar23;\n          }" ({ "{") (labeled_statement "LAB_000289ba:\n            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" (statement_identifier "LAB_000289ba") (: ":") (expression_statement "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);" (assignment_expression "iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1])" (identifier "iVar5") (= "=") (call_expression "strcmp((char *)piVar23[1],(char *)puVar13[1])" (identifier "strcmp") (argument_list "((char *)piVar23[1],(char *)puVar13[1])" (( "(") (cast_expression "(char *)piVar23[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar23[1]" (identifier "piVar23") ([ "[") (number_literal "1") (] "]"))) (, ",") (cast_expression "(char *)puVar13[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";"))) (expression_statement "uVar21 = local_44;" (assignment_expression "uVar21 = local_44" (identifier "uVar21") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (iVar5 == 0) {\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }\n              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];\n              local_50 = (int *)((int)local_50 + 1);\n              piVar23[2] = 1;\n            }" ({ "{") (if_statement "if (local_44 <= local_50) {\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" (if "if") (parenthesized_expression "(local_44 <= local_50)" (( "(") (binary_expression "local_44 <= local_50" (identifier "local_44") (<= "<=") (identifier "local_50")) () ")")) (compound_statement "{\n                uVar21 = local_44 * 2;\n                local_4c = (void *)xrealloc(local_4c,local_44 << 3);\n              }" ({ "{") (expression_statement "uVar21 = local_44 * 2;" (assignment_expression "uVar21 = local_44 * 2" (identifier "uVar21") (= "=") (binary_expression "local_44 * 2" (identifier "local_44") (* "*") (number_literal "2"))) (; ";")) (expression_statement "local_4c = (void *)xrealloc(local_4c,local_44 << 3);" (assignment_expression "local_4c = (void *)xrealloc(local_4c,local_44 << 3)" (identifier "local_4c") (= "=") (cast_expression "(void *)xrealloc(local_4c,local_44 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(local_4c,local_44 << 3)" (identifier "xrealloc") (argument_list "(local_4c,local_44 << 3)" (( "(") (identifier "local_4c") (, ",") (binary_expression "local_44 << 3" (identifier "local_44") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_4c + (int)local_50 * 4)" (* "*") (cast_expression "(int *)((int)local_4c + (int)local_50 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_4c + (int)local_50 * 4)" (( "(") (binary_expression "(int)local_4c + (int)local_50 * 4" (cast_expression "(int)local_4c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_4c")) (+ "+") (binary_expression "(int)local_50 * 4" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (* "*") (number_literal "4"))) () ")")))) (= "=") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_50 = (int *)((int)local_50 + 1);" (assignment_expression "local_50 = (int *)((int)local_50 + 1)" (identifier "local_50") (= "=") (cast_expression "(int *)((int)local_50 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_50 + 1)" (( "(") (binary_expression "(int)local_50 + 1" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar23[2] = 1;" (assignment_expression "piVar23[2] = 1" (subscript_expression "piVar23[2]" (identifier "piVar23") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "piVar23 = (int *)*piVar23;" (assignment_expression "piVar23 = (int *)*piVar23" (identifier "piVar23") (= "=") (cast_expression "(int *)*piVar23" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar23" (* "*") (identifier "piVar23")))) (; ";")) (expression_statement "local_44 = uVar21;" (assignment_expression "local_44 = uVar21" (identifier "local_44") (= "=") (identifier "uVar21")) (; ";")) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" (identifier "piVar27") (= "=") (identifier "piVar23")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar13[6] != 0) {\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" (if "if") (parenthesized_expression "(puVar13[6] != 0)" (( "(") (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");\n    }" ({ "{") (expression_statement "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");" (assignment_expression "uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags")" (identifier "uVar6") (= "=") (call_expression "FUN_0002fba0(puVar13[6],0,"phdr flags")" (identifier "FUN_0002fba0") (argument_list "(puVar13[6],0,"phdr flags")" (( "(") (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "0") (, ",") (string_literal ""phdr flags"" (" """) (string_content "phdr flags") (" """)) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" (identifier "iVar5") (= "=") (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar5 != 0) {\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");\n      iVar5 = puVar13[5];\n    }" ({ "{") (expression_statement "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");" (assignment_expression "uVar12 = FUN_0002fba0(iVar5,0,"phdr load address")" (identifier "uVar12") (= "=") (call_expression "FUN_0002fba0(iVar5,0,"phdr load address")" (identifier "FUN_0002fba0") (argument_list "(iVar5,0,"phdr load address")" (( "(") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (string_literal ""phdr load address"" (" """) (string_content "phdr load address") (" """)) () ")")))) (; ";")) (expression_statement "iVar5 = puVar13[5];" (assignment_expression "iVar5 = puVar13[5]" (identifier "iVar5") (= "=") (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c);" (assignment_expression "iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" (identifier "iVar5") (= "=") (call_expression "bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" (identifier "bfd_record_phdr") (argument_list "(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,\n                            puVar13[3],puVar13[4],local_50,local_4c)" (( "(") (identifier "DAT_00091c50") (, ",") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "puVar13[6] != 0" (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) (, ",") (identifier "uVar6") (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (, ",") (identifier "uVar12") (, ",") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "puVar13[4]" (identifier "puVar13") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "local_50") (, ",") (identifier "local_4c") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00031760(uVar6);\n    }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: bfd_record_phdr failed: %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: bfd_record_phdr failed: %E\n"" (" """) (string_content "%F%P: bfd_record_phdr failed: %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" (identifier "FUN_00031760") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "free(local_4c);" (call_expression "free(local_4c)" (identifier "free") (argument_list "(local_4c)" (( "(") (identifier "local_4c") () ")"))) (; ";")) (for_statement "for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_00091be0" (identifier "piVar24") (= "=") (identifier "DAT_00091be0")) (; ";") (binary_expression "piVar24 != (int *)0x0" (identifier "piVar24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "piVar24 = (int *)piVar24[4]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")))) () ")") (compound_statement "{\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" ({ "{") (if_statement "if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" (if "if") (parenthesized_expression "((-1 < piVar24[0x12]) && (piVar24[7] != 0))" (( "(") (binary_expression "(-1 < piVar24[0x12]) && (piVar24[7] != 0)" (parenthesized_expression "(-1 < piVar24[0x12])" (( "(") (binary_expression "-1 < piVar24[0x12]" (number_literal "-1") (< "<") (subscript_expression "piVar24[0x12]" (identifier "piVar24") ([ "[") (number_literal "0x12") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(piVar24[7] != 0)" (( "(") (binary_expression "piVar24[7] != 0" (subscript_expression "piVar24[7]" (identifier "piVar24") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }" ({ "{") (expression_statement "piVar26 = (int *)piVar24[0xe];" (assignment_expression "piVar26 = (int *)piVar24[0xe]" (identifier "piVar26") (= "=") (cast_expression "(int *)piVar24[0xe]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[0xe]" (identifier "piVar24") ([ "[") (number_literal "0xe") (] "]")))) (; ";")) (labeled_statement "joined_r0x00028aeb:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" (statement_identifier "joined_r0x00028aeb") (: ":") (if_statement "if (piVar26 != (int *)0x0) {\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(piVar26 != (int *)0x0)" (( "(") (binary_expression "piVar26 != (int *)0x0" (identifier "piVar26") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" (do "do") (compound_statement "{\n          bVar31 = false;\n          bVar32 = piVar26[2] == 0;\n          if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" ({ "{") (expression_statement "bVar31 = false;" (assignment_expression "bVar31 = false" (identifier "bVar31") (= "=") (false "false")) (; ";")) (expression_statement "bVar32 = piVar26[2] == 0;" (assignment_expression "bVar32 = piVar26[2] == 0" (identifier "bVar32") (= "=") (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" (identifier "piVar26") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar32) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" (if "if") (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar5 = 5;\n            pbVar17 = pbVar3;\n            pbVar30 = (byte *)0x3d35d;\n            do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);\n            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;\n          }" ({ "{") (expression_statement "pbVar3 = (byte *)piVar26[1];" (assignment_expression "pbVar3 = (byte *)piVar26[1]" (identifier "pbVar3") (= "=") (cast_expression "(byte *)piVar26[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar26[1]" (identifier "piVar26") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar5 = 5;" (assignment_expression "iVar5 = 5" (identifier "iVar5") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar17 = pbVar3;" (assignment_expression "pbVar17 = pbVar3" (identifier "pbVar17") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar30 = (byte *)0x3d35d;" (assignment_expression "pbVar30 = (byte *)0x3d35d" (identifier "pbVar30") (= "=") (cast_expression "(byte *)0x3d35d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3d35d"))) (; ";")) (do_statement "do {\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            } while (bVar32);" (do "do") (compound_statement "{\n              if (iVar5 == 0) break;\n              iVar5 = iVar5 + -1;\n              bVar31 = *pbVar17 < *pbVar30;\n              bVar32 = *pbVar17 == *pbVar30;\n              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;\n              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar31 = *pbVar17 < *pbVar30;" (assignment_expression "bVar31 = *pbVar17 < *pbVar30" (identifier "bVar31") (= "=") (binary_expression "*pbVar17 < *pbVar30" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (< "<") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")))) (; ";")) (expression_statement "bVar32 = *pbVar17 == *pbVar30;" (assignment_expression "bVar32 = *pbVar17 == *pbVar30" (identifier "bVar32") (= "=") (binary_expression "*pbVar17 == *pbVar30" (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17")) (== "==") (pointer_expression "*pbVar30" (* "*") (identifier "pbVar30")))) (; ";")) (expression_statement "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar17 + (uint)bVar33 * -2" (identifier "pbVar17") (+ "+") (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar33")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;" (assignment_expression "pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1" (identifier "pbVar30") (= "=") (binary_expression "pbVar30 + (uint)bVar33 * -2 + 1" (binary_expression "pbVar30 + (uint)bVar33 * -2" (identifier "pbVar30") (+ "+") (binary_expression "(uint)bVar33 * -2" (cast_expression "(uint)bVar33" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar33")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar32)" (( "(") (identifier "bVar32") () ")")) (; ";")) (if_statement "if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;" (if "if") (parenthesized_expression "((!bVar31 && !bVar32) != bVar31)" (( "(") (binary_expression "(!bVar31 && !bVar32) != bVar31" (parenthesized_expression "(!bVar31 && !bVar32)" (( "(") (binary_expression "!bVar31 && !bVar32" (unary_expression "!bVar31" (! "!") (identifier "bVar31")) (&& "&&") (unary_expression "!bVar32" (! "!") (identifier "bVar32"))) () ")")) (!= "!=") (identifier "bVar31")) () ")")) (goto_statement "goto code_r0x00028b27;" (goto "goto") (statement_identifier "code_r0x00028b27") (; ";"))) (} "}"))) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" (identifier "piVar26") (= "=") (cast_expression "(int *)*piVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")))) (; ";")) (if_statement "if (piVar26 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar26 == (int *)0x0)" (( "(") (binary_expression "piVar26 == (int *)0x0" (identifier "piVar26") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2))" (( "(") (binary_expression "((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)" (parenthesized_expression "((DAT_00091c20._3_1_ & 0x10) != 0)" (( "(") (binary_expression "(DAT_00091c20._3_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00091c20._3_1_ & 0x10)" (( "(") (binary_expression "DAT_00091c20._3_1_ & 0x10" (field_expression "DAT_00091c20._3_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_3_1_")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_00025980();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }\n  }" ({ "{") (expression_statement "local_20[0] = (char *)0x0;" (assignment_expression "local_20[0] = (char *)0x0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "FUN_00025980();" (call_expression "FUN_00025980()" (identifier "FUN_00025980") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" (if "if") (parenthesized_expression "(local_20[0] == (char *)0x0)" (( "(") (binary_expression "local_20[0] == (char *)0x0" (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;\n    }" ({ "{") (expression_statement "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;" (assignment_expression "DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_3_1_")) (= "=") (binary_expression "DAT_00091c20._3_1_ & 0xef" (field_expression "DAT_00091c20._3_1_" (identifier "DAT_00091c20") (. ".") (field_identifier "_3_1_")) (& "&") (number_literal "0xef"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00026140(0,1 < DAT_00091c34);" (call_expression "FUN_00026140(0,1 < DAT_00091c34)" (identifier "FUN_00026140") (argument_list "(0,1 < DAT_00091c34)" (( "(") (number_literal "0") (, ",") (binary_expression "1 < DAT_00091c34" (number_literal "1") (< "<") (identifier "DAT_00091c34")) () ")"))) (; ";")) (expression_statement "FUN_0002ffb0();" (call_expression "FUN_0002ffb0()" (identifier "FUN_0002ffb0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = DAT_00091c50;" (assignment_expression "iVar5 = DAT_00091c50" (identifier "iVar5") (= "=") (identifier "DAT_00091c50")) (; ";")) (expression_statement "uVar6 = DAT_0009180c;" (assignment_expression "uVar6 = DAT_0009180c" (identifier "uVar6") (= "=") (identifier "DAT_0009180c")) (; ";")) (if_statement "if (DAT_000917c8 != 0) {\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" (if "if") (parenthesized_expression "(DAT_000917c8 != 0)" (( "(") (binary_expression "DAT_000917c8 != 0" (identifier "DAT_000917c8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar24 = DAT_000917cc + DAT_000917c8;\n    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;\n    piVar26 = DAT_000917cc;\n    do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" ({ "{") (expression_statement "piVar24 = DAT_000917cc + DAT_000917c8;" (assignment_expression "piVar24 = DAT_000917cc + DAT_000917c8" (identifier "piVar24") (= "=") (binary_expression "DAT_000917cc + DAT_000917c8" (identifier "DAT_000917cc") (+ "+") (identifier "DAT_000917c8"))) (; ";")) (expression_statement "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;" (assignment_expression "puVar15 = PTR__bfd_std_section_00090fc4 + 0x150" (identifier "puVar15") (= "=") (binary_expression "PTR__bfd_std_section_00090fc4 + 0x150" (identifier "PTR__bfd_std_section_00090fc4") (+ "+") (number_literal "0x150"))) (; ";")) (expression_statement "piVar26 = DAT_000917cc;" (assignment_expression "piVar26 = DAT_000917cc" (identifier "piVar26") (= "=") (identifier "DAT_000917cc")) (; ";")) (do_statement "do {\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" (do "do") (compound_statement "{\n      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }\n      piVar26 = piVar26 + 1;\n    }" ({ "{") (while_statement "while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" (while "while") (parenthesized_expression "(iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3)" (( "(") (comma_expression "iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar9 = *piVar26" (identifier "iVar9") (= "=") (pointer_expression "*piVar26" (* "*") (identifier "piVar26"))) (, ",") (binary_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar9 + 0xc) & 0x8ff)" (( "(") (binary_expression "*(ushort *)(iVar9 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar9 + 0xc)" (* "*") (cast_expression "(ushort *)(iVar9 + 0xc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0x8ff")) () ")")) (== "==") (number_literal "3"))) () ")")) (compound_statement "{\n        pcVar10 = *(char **)(iVar9 + 4);\n        local_4c._0_1_ = (byte)uVar6;\n        if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }\n        if (pcVar10[2] != 'i') break;\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);\n        *(undefined **)(iVar9 + 0x14) = puVar15;\n        if (piVar24 == piVar26) goto LAB_00028c60;\n      }" ({ "{") (expression_statement "pcVar10 = *(char **)(iVar9 + 4);" (assignment_expression "pcVar10 = *(char **)(iVar9 + 4)" (identifier "pcVar10") (= "=") (pointer_expression "*(char **)(iVar9 + 4)" (* "*") (cast_expression "(char **)(iVar9 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_4c._0_1_ = (byte)uVar6;" (assignment_expression "local_4c._0_1_ = (byte)uVar6" (field_expression "local_4c._0_1_" (identifier "local_4c") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6"))) (; ";")) (if_statement "if (*pcVar10 != '.') {\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(*pcVar10 != '.')" (( "(") (binary_expression "*pcVar10 != '.'" (pointer_expression "*pcVar10" (* "*") (identifier "pcVar10")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);\n          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n          *(int *)(iVar9 + 0x14) = iVar8;\n          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }\n          break;\n        }" ({ "{") (expression_statement "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);" (assignment_expression "cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(*(int *)(iVar5 + 4) + 0x18)" (* "*") (cast_expression "(char *)(*(int *)(iVar5 + 4) + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar5 + 4) + 0x18)" (( "(") (binary_expression "*(int *)(iVar5 + 4) + 0x18" (pointer_expression "*(int *)(iVar5 + 4)" (* "*") (cast_expression "(int *)(iVar5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" (( "(") (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar9 + 0x14) = iVar8;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar8" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (pcVar10[(cVar4 != '\0') + 4] == 'o') {\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" (if "if") (parenthesized_expression "(pcVar10[(cVar4 != '\0') + 4] == 'o')" (( "(") (binary_expression "pcVar10[(cVar4 != '\0') + 4] == 'o'" (subscript_expression "pcVar10[(cVar4 != '\0') + 4]" (identifier "pcVar10") ([ "[") (binary_expression "(cVar4 != '\0') + 4" (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (number_literal "4")) (] "]")) (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);\n          }" ({ "{") (expression_statement "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar8 + 0x24)" (* "*") (cast_expression "(uint *)(iVar8 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x24)" (( "(") (binary_expression "iVar8 + 0x24" (identifier "iVar8") (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)local_4c & 0x1f)" (( "(") (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_4c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (pcVar10[2] != 'i') break;" (if "if") (parenthesized_expression "(pcVar10[2] != 'i')" (( "(") (binary_expression "pcVar10[2] != 'i'" (subscript_expression "pcVar10[2]" (identifier "pcVar10") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);" (assignment_expression "*(uint *)(iVar9 + 0x18) =\n             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(iVar9 + 0x18)" (* "*") (cast_expression "(uint *)(iVar9 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" (* "*") (cast_expression "(uint *)(*(int *)(iVar9 + 0x14) + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x24)" (( "(") (binary_expression "*(int *)(iVar9 + 0x14) + 0x24" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x24")) () ")")))) (>> ">>") (parenthesized_expression "((byte)local_4c & 0x1f)" (( "(") (binary_expression "(byte)local_4c & 0x1f" (cast_expression "(byte)local_4c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_4c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(undefined **)(iVar9 + 0x14) = puVar15;" (assignment_expression "*(undefined **)(iVar9 + 0x14) = puVar15" (pointer_expression "*(undefined **)(iVar9 + 0x14)" (* "*") (cast_expression "(undefined **)(iVar9 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (piVar24 == piVar26) goto LAB_00028c60;" (if "if") (parenthesized_expression "(piVar24 == piVar26)" (( "(") (binary_expression "piVar24 == piVar26" (identifier "piVar24") (== "==") (identifier "piVar26")) () ")")) (goto_statement "goto LAB_00028c60;" (goto "goto") (statement_identifier "LAB_00028c60") (; ";"))) (} "}"))) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar24 != piVar26)" (( "(") (binary_expression "piVar24 != piVar26" (identifier "piVar24") (!= "!=") (identifier "piVar26")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00028c60:\n  FUN_00024940(4);" (statement_identifier "LAB_00028c60") (: ":") (expression_statement "FUN_00024940(4);" (call_expression "FUN_00024940(4)" (identifier "FUN_00024940") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";"))) (expression_statement "FUN_00030010();" (call_expression "FUN_00030010()" (identifier "FUN_00030010") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0002fea0();" (call_expression "FUN_0002fea0()" (identifier "FUN_0002fea0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" (identifier "puVar13") (= "=") (identifier "DAT_000917dc")) (; ";")) (if_statement "if (DAT_00091cd8 != '\0') {\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00091cd8 != '\0')" (( "(") (binary_expression "DAT_00091cd8 != '\0'" (identifier "DAT_00091cd8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);\n    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);\n    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;\n    if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }\n    puVar13 = DAT_000917dc;\n    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }\n  }" ({ "{") (expression_statement "cVar4 = bfd_arch_bits_per_address(DAT_00091c50);" (assignment_expression "cVar4 = bfd_arch_bits_per_address(DAT_00091c50)" (identifier "cVar4") (= "=") (call_expression "bfd_arch_bits_per_address(DAT_00091c50)" (identifier "bfd_arch_bits_per_address") (argument_list "(DAT_00091c50)" (( "(") (identifier "DAT_00091c50") () ")")))) (; ";")) (expression_statement "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);" (assignment_expression "puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60)" (identifier "puVar13") (= "=") (pointer_expression "*(undefined4 **)(DAT_00091c50 + 0x60)" (* "*") (cast_expression "(undefined4 **)(DAT_00091c50 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x60)" (( "(") (binary_expression "DAT_00091c50 + 0x60" (identifier "DAT_00091c50") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;" (assignment_expression "uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1" (identifier "uVar21") (= "=") (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2 - 1" (binary_expression "(1 << (cVar4 - 1U & 0x1f)) * 2" (parenthesized_expression "(1 << (cVar4 - 1U & 0x1f))" (( "(") (binary_expression "1 << (cVar4 - 1U & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(cVar4 - 1U & 0x1f)" (( "(") (binary_expression "cVar4 - 1U & 0x1f" (binary_expression "cVar4 - 1U" (identifier "cVar4") (- "-") (number_literal "1U")) (& "&") (number_literal "0x1f")) () ")"))) () ")")) (* "*") (number_literal "2")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);\n    }" ({ "{") (do_statement "do {\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      } while (puVar13 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }\nLAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];\n      }" ({ "{") (if_statement "if ((*(byte *)(puVar13 + 5) & 1) != 0) {\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" (if "if") (parenthesized_expression "((*(byte *)(puVar13 + 5) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar13 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar13 + 5) & 1)" (( "(") (binary_expression "*(byte *)(puVar13 + 5) & 1" (pointer_expression "*(byte *)(puVar13 + 5)" (* "*") (cast_expression "(byte *)(puVar13 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar13 + 5)" (( "(") (binary_expression "puVar13 + 5" (identifier "puVar13") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar22 = puVar13[7] + puVar13[9] & uVar21;\n          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar12 = dcgettext(0,pcVar10,5);\n          FUN_00031760(uVar12,uVar6);\n        }" ({ "{") (expression_statement "uVar22 = puVar13[7] + puVar13[9] & uVar21;" (assignment_expression "uVar22 = puVar13[7] + puVar13[9] & uVar21" (identifier "uVar22") (= "=") (binary_expression "puVar13[7] + puVar13[9] & uVar21" (binary_expression "puVar13[7] + puVar13[9]" (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")) (+ "+") (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]"))) (& "&") (identifier "uVar21"))) (; ";")) (if_statement "if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" (if "if") (parenthesized_expression "((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22))" (( "(") (binary_expression "(uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((puVar13[7] & uVar21) <= uVar22)" (( "(") (binary_expression "(puVar13[7] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[7] & uVar21)" (( "(") (binary_expression "puVar13[7] & uVar21" (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")) (& "&") (identifier "uVar21")) () ")")) (<= "<=") (identifier "uVar22")) () ")"))) () ")")) (compound_statement "{\n            uVar22 = puVar13[9] + puVar13[8] & uVar21;\n            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s LMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar22 = puVar13[9] + puVar13[8] & uVar21;" (assignment_expression "uVar22 = puVar13[9] + puVar13[8] & uVar21" (identifier "uVar22") (= "=") (binary_expression "puVar13[9] + puVar13[8] & uVar21" (binary_expression "puVar13[9] + puVar13[8]" (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]")) (+ "+") (subscript_expression "puVar13[8]" (identifier "puVar13") ([ "[") (number_literal "8") (] "]"))) (& "&") (identifier "uVar21"))) (; ";")) (if_statement "if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;" (if "if") (parenthesized_expression "((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22))" (( "(") (binary_expression "(uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)" (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((puVar13[8] & uVar21) <= uVar22)" (( "(") (binary_expression "(puVar13[8] & uVar21) <= uVar22" (parenthesized_expression "(puVar13[8] & uVar21)" (( "(") (binary_expression "puVar13[8] & uVar21" (subscript_expression "puVar13[8]" (identifier "puVar13") ([ "[") (number_literal "8") (] "]")) (& "&") (identifier "uVar21")) () ")")) (<= "<=") (identifier "uVar22")) () ")"))) () ")")) (goto_statement "goto LAB_000296b0;" (goto "goto") (statement_identifier "LAB_000296b0") (; ";"))) (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "pcVar10 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s LMA wraps around address space\n"" (identifier "pcVar10") (= "=") (string_literal ""%X%P: section %s LMA wraps around address space\n"" (" """) (string_content "%X%P: section %s LMA wraps around address space") (escape_sequence "\n") (" """))) (; ";")) (} "}")) (else_clause "else {\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" (else "else") (compound_statement "{\n            uVar6 = *puVar13;\n            pcVar10 = "%X%P: section %s VMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "pcVar10 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar10 = "%X%P: section %s VMA wraps around address space\n"" (identifier "pcVar10") (= "=") (string_literal ""%X%P: section %s VMA wraps around address space\n"" (" """) (string_content "%X%P: section %s VMA wraps around address space") (escape_sequence "\n") (" """))) (; ";")) (} "}")))) (expression_statement "uVar12 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar12 = dcgettext(0,pcVar10,5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,pcVar10,5)" (identifier "dcgettext") (argument_list "(0,pcVar10,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar10") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000296b0:\n        puVar13 = (undefined4 *)puVar13[3];" (statement_identifier "LAB_000296b0") (: ":") (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" (identifier "puVar13") (= "=") (identifier "DAT_000917dc")) (; ";")) (if_statement "if (1 < *(uint *)(DAT_00091c50 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(DAT_00091c50 + 0x68))" (( "(") (binary_expression "1 < *(uint *)(DAT_00091c50 + 0x68)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" (* "*") (cast_expression "(uint *)(DAT_00091c50 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x68)" (( "(") (binary_expression "DAT_00091c50 + 0x68" (identifier "DAT_00091c50") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);\n      uVar21 = 0;\n      iVar5 = *(int *)(DAT_00091c50 + 0x60);\n      if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }\n      free(piVar24);\n      puVar13 = DAT_000917dc;\n    }" ({ "{") (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" (identifier "piVar24") (= "=") (cast_expression "(int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3)" (identifier "xmalloc") (argument_list "(*(uint *)(DAT_00091c50 + 0x68) << 3)" (( "(") (binary_expression "*(uint *)(DAT_00091c50 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00091c50 + 0x68)" (* "*") (cast_expression "(uint *)(DAT_00091c50 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x68)" (( "(") (binary_expression "DAT_00091c50 + 0x68" (identifier "DAT_00091c50") (+ "+") (number_literal "0x68")) () ")")))) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = *(int *)(DAT_00091c50 + 0x60);" (assignment_expression "iVar5 = *(int *)(DAT_00091c50 + 0x60)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(DAT_00091c50 + 0x60)" (* "*") (cast_expression "(int *)(DAT_00091c50 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00091c50 + 0x60)" (( "(") (binary_expression "DAT_00091c50 + 0x60" (identifier "DAT_00091c50") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) {\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);\n        if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }\n      }" ({ "{") (do_statement "do {\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        } while (iVar5 != 0);" (do "do") (compound_statement "{\n          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }\n          iVar5 = *(int *)(iVar5 + 0xc);\n        }" ({ "{") (if_statement "if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)) {\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" (if "if") (parenthesized_expression "((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0))" (( "(") (binary_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar5 + 0x24) != 0)" (parenthesized_expression "(((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))" (( "(") (binary_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(iVar5 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 1)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x14) & 1" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400)" (( "(") (binary_expression "(*(uint *)(iVar5 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar5 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar5 + 0x14)" (* "*") (cast_expression "(uint *)(iVar5 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x14)" (( "(") (binary_expression "iVar5 + 0x14" (identifier "iVar5") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar5 + 0x24) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x24) != 0" (pointer_expression "*(int *)(iVar5 + 0x24)" (* "*") (cast_expression "(int *)(iVar5 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x24)" (( "(") (binary_expression "iVar5 + 0x24" (identifier "iVar5") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar9 = uVar21 * 2;\n            uVar21 = uVar21 + 1;\n            piVar24[iVar9] = iVar5;\n            (piVar24 + iVar9)[1] = 0;\n          }" ({ "{") (expression_statement "iVar9 = uVar21 * 2;" (assignment_expression "iVar9 = uVar21 * 2" (identifier "iVar9") (= "=") (binary_expression "uVar21 * 2" (identifier "uVar21") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" (identifier "uVar21") (= "=") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar24[iVar9] = iVar5;" (assignment_expression "piVar24[iVar9] = iVar5" (subscript_expression "piVar24[iVar9]" (identifier "piVar24") ([ "[") (identifier "iVar9") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "(piVar24 + iVar9)[1] = 0;" (assignment_expression "(piVar24 + iVar9)[1] = 0" (subscript_expression "(piVar24 + iVar9)[1]" (parenthesized_expression "(piVar24 + iVar9)" (( "(") (binary_expression "piVar24 + iVar9" (identifier "piVar24") (+ "+") (identifier "iVar9")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar5 = *(int *)(iVar5 + 0xc)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (1 < uVar21) {\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" (if "if") (parenthesized_expression "(1 < uVar21)" (( "(") (binary_expression "1 < uVar21" (number_literal "1") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n          qsort(piVar24,uVar21,8,FUN_0001de50);\n          local_44 = 0;\n          local_48 = (undefined4 *)0x0;\n          local_50 = (undefined4 *)0x0;\n          piVar26 = piVar24;\n          do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);\n          qsort(piVar24,uVar21,8,FUN_0001de90);\n          puVar13 = (undefined4 *)*piVar24;\n          piVar26 = (int *)puVar13[7];\n          uVar16 = 1;\n          uVar22 = (uint)piVar26;\n          do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);\n          uVar22 = 0;\n          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;\n          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }\nLAB_000298a2:\n          free(piVar24);\n          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }\n          goto joined_r0x00028c93;\n        }" ({ "{") (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de50);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de50)" (identifier "qsort") (argument_list "(piVar24,uVar21,8,FUN_0001de50)" (( "(") (identifier "piVar24") (, ",") (identifier "uVar21") (, ",") (number_literal "8") (, ",") (identifier "FUN_0001de50") () ")"))) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = (undefined4 *)0x0;" (assignment_expression "local_48 = (undefined4 *)0x0" (identifier "local_48") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50 = (undefined4 *)0x0;" (assignment_expression "local_50 = (undefined4 *)0x0" (identifier "local_50") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" (identifier "piVar26") (= "=") (identifier "piVar24")) (; ";")) (do_statement "do {\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar21 * 2 != piVar26);" (do "do") (compound_statement "{\n            puVar20 = (undefined4 *)*piVar26;\n            piVar23 = local_50;\n            puVar13 = local_48;\n            uVar22 = local_44;\n            if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }\n            local_44 = uVar22;\n            local_48 = puVar13;\n            local_50 = piVar23;\n            piVar26 = piVar26 + 2;\n          }" ({ "{") (expression_statement "puVar20 = (undefined4 *)*piVar26;" (assignment_expression "puVar20 = (undefined4 *)*piVar26" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)*piVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")))) (; ";")) (expression_statement "piVar23 = local_50;" (assignment_expression "piVar23 = local_50" (identifier "piVar23") (= "=") (identifier "local_50")) (; ";")) (expression_statement "puVar13 = local_48;" (assignment_expression "puVar13 = local_48" (identifier "puVar13") (= "=") (identifier "local_48")) (; ";")) (expression_statement "uVar22 = local_44;" (assignment_expression "uVar22 = local_44" (identifier "uVar22") (= "=") (identifier "local_44")) (; ";")) (if_statement "if ((*(byte *)(puVar20 + 5) & 2) != 0) {\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" (if "if") (parenthesized_expression "((*(byte *)(puVar20 + 5) & 2) != 0)" (( "(") (binary_expression "(*(byte *)(puVar20 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar20 + 5) & 2)" (( "(") (binary_expression "*(byte *)(puVar20 + 5) & 2" (pointer_expression "*(byte *)(puVar20 + 5)" (* "*") (cast_expression "(byte *)(puVar20 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 5)" (( "(") (binary_expression "puVar20 + 5" (identifier "puVar20") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar22 = puVar20[8];\n              puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));\n              piVar23 = puVar20;\n              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }\n            }" ({ "{") (expression_statement "uVar22 = puVar20[8];" (assignment_expression "uVar22 = puVar20[8]" (identifier "uVar22") (= "=") (subscript_expression "puVar20[8]" (identifier "puVar20") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "puVar13 = (undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)\n                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (binary_expression "(uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "(uVar22 - 1)" (( "(") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1")) () ")")) (+ "+") (parenthesized_expression "((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f))" (( "(") (binary_expression "(uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar20[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar20[9]" (identifier "puVar20") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009180c")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) () ")")))) (; ";")) (expression_statement "piVar23 = puVar20;" (assignment_expression "piVar23 = puVar20" (identifier "piVar23") (= "=") (identifier "puVar20")) (; ";")) (if_statement "if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 ) {\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" (if "if") (parenthesized_expression "((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))\n                 )" (( "(") (binary_expression "(local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))" (parenthesized_expression "(local_50 != (undefined4 *)0x0)" (( "(") (binary_expression "local_50 != (undefined4 *)0x0" (identifier "local_50") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((uVar22 <= local_48 || (local_48 < local_44)))" (( "(") (parenthesized_expression "(uVar22 <= local_48 || (local_48 < local_44))" (( "(") (binary_expression "uVar22 <= local_48 || (local_48 < local_44)" (binary_expression "uVar22 <= local_48" (identifier "uVar22") (<= "<=") (identifier "local_48")) (|| "||") (parenthesized_expression "(local_48 < local_44)" (( "(") (binary_expression "local_48 < local_44" (identifier "local_48") (< "<") (identifier "local_44")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                uVar6 = *local_50;\n                uVar12 = *puVar20;\n                uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);\n                piVar26[1] = 1;\n              }" ({ "{") (expression_statement "uVar6 = *local_50;" (assignment_expression "uVar6 = *local_50" (identifier "uVar6") (= "=") (pointer_expression "*local_50" (* "*") (identifier "local_50"))) (; ";")) (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" (identifier "uVar12") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar18 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" (identifier "dcgettext") (argument_list "(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"" (" """) (string_content "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);" (call_expression "FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" (identifier "FUN_00031760") (argument_list "(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar12") (, ",") (identifier "uVar22") (, ",") (identifier "puVar13") (, ",") (identifier "uVar6") (, ",") (identifier "local_44") (, ",") (identifier "local_48") () ")"))) (; ";")) (expression_statement "piVar26[1] = 1;" (assignment_expression "piVar26[1] = 1" (subscript_expression "piVar26[1]" (identifier "piVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_44 = uVar22;" (assignment_expression "local_44 = uVar22" (identifier "local_44") (= "=") (identifier "uVar22")) (; ";")) (expression_statement "local_48 = puVar13;" (assignment_expression "local_48 = puVar13" (identifier "local_48") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "local_50 = piVar23;" (assignment_expression "local_50 = piVar23" (identifier "local_50") (= "=") (identifier "piVar23")) (; ";")) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 2" (identifier "piVar26") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar24 + uVar21 * 2 != piVar26)" (( "(") (binary_expression "piVar24 + uVar21 * 2 != piVar26" (binary_expression "piVar24 + uVar21 * 2" (identifier "piVar24") (+ "+") (binary_expression "uVar21 * 2" (identifier "uVar21") (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar26")) () ")")) (; ";")) (expression_statement "qsort(piVar24,uVar21,8,FUN_0001de90);" (call_expression "qsort(piVar24,uVar21,8,FUN_0001de90)" (identifier "qsort") (argument_list "(piVar24,uVar21,8,FUN_0001de90)" (( "(") (identifier "piVar24") (, ",") (identifier "uVar21") (, ",") (number_literal "8") (, ",") (identifier "FUN_0001de90") () ")"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)*piVar24;" (assignment_expression "puVar13 = (undefined4 *)*piVar24" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*piVar24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" (identifier "piVar26") (= "=") (cast_expression "(int *)puVar13[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "uVar16 = 1;" (assignment_expression "uVar16 = 1" (identifier "uVar16") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar22 = (uint)piVar26;" (assignment_expression "uVar22 = (uint)piVar26" (identifier "uVar22") (= "=") (cast_expression "(uint)piVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar26"))) (; ";")) (do_statement "do {\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          } while (uVar16 != uVar21);" (do "do") (compound_statement "{\n            iVar5 = uVar16 * 2;\n            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;\n            uVar16 = uVar16 + 1;\n            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);\n          }" ({ "{") (expression_statement "iVar5 = uVar16 * 2;" (assignment_expression "iVar5 = uVar16 * 2" (identifier "iVar5") (= "=") (binary_expression "uVar16 * 2" (identifier "uVar16") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;" (if "if") (parenthesized_expression "(*(uint *)(piVar24[iVar5] + 0x1c) == uVar22)" (( "(") (binary_expression "*(uint *)(piVar24[iVar5] + 0x1c) == uVar22" (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" (* "*") (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[iVar5] + 0x1c)" (( "(") (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" (identifier "piVar24") ([ "[") (identifier "iVar5") (] "]")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "uVar22")) () ")")) (goto_statement "goto LAB_000298a2;" (goto "goto") (statement_identifier "LAB_000298a2") (; ";"))) (expression_statement "uVar16 = uVar16 + 1;" (assignment_expression "uVar16 = uVar16 + 1" (identifier "uVar16") (= "=") (binary_expression "uVar16 + 1" (identifier "uVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);" (assignment_expression "uVar22 = *(uint *)(piVar24[iVar5] + 0x1c)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(piVar24[iVar5] + 0x1c)" (* "*") (cast_expression "(uint *)(piVar24[iVar5] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[iVar5] + 0x1c)" (( "(") (binary_expression "piVar24[iVar5] + 0x1c" (subscript_expression "piVar24[iVar5]" (identifier "piVar24") ([ "[") (identifier "iVar5") (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar16 != uVar21)" (( "(") (binary_expression "uVar16 != uVar21" (identifier "uVar16") (!= "!=") (identifier "uVar21")) () ")")) (; ";")) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))\n          ;" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (identifier "pvVar1") (= "=") (cast_expression "(void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (binary_expression "((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" (( "(") (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar26")) (- "-") (number_literal "1U")) () ")")) (+ "+") (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (( "(") (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009180c")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) () ")")))) (; ";")) (while_statement "while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21) {\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" (while "while") (parenthesized_expression "(local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21)" (( "(") (comma_expression "local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_48 = puVar13" (identifier "local_48") (= "=") (identifier "puVar13")) (, ",") (comma_expression "local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_4c = pvVar1" (identifier "local_4c") (= "=") (identifier "pvVar1")) (, ",") (comma_expression "local_50 = piVar26, uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "local_50 = piVar26" (identifier "local_50") (= "=") (identifier "piVar26")) (, ",") (comma_expression "uVar22 = uVar22 + 1,\n                uVar22 != uVar21" (assignment_expression "uVar22 = uVar22 + 1" (identifier "uVar22") (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (, ",") (binary_expression "uVar22 != uVar21" (identifier "uVar22") (!= "!=") (identifier "uVar21")))))) () ")")) (compound_statement "{\n            puVar13 = (undefined4 *)piVar24[uVar22 * 2];\n            piVar26 = (int *)puVar13[7];\n            pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));\n            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }\n          }" ({ "{") (expression_statement "puVar13 = (undefined4 *)piVar24[uVar22 * 2];" (assignment_expression "puVar13 = (undefined4 *)piVar24[uVar22 * 2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)piVar24[uVar22 * 2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[uVar22 * 2]" (identifier "piVar24") ([ "[") (binary_expression "uVar22 * 2" (identifier "uVar22") (* "*") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "piVar26 = (int *)puVar13[7];" (assignment_expression "piVar26 = (int *)puVar13[7]" (identifier "piVar26") (= "=") (cast_expression "(int *)puVar13[7]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));" (assignment_expression "pvVar1 = (void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (identifier "pvVar1") (= "=") (cast_expression "(void *)(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))" (( "(") (binary_expression "((int)piVar26 - 1U) +\n                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (parenthesized_expression "((int)piVar26 - 1U)" (( "(") (binary_expression "(int)piVar26 - 1U" (cast_expression "(int)piVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar26")) (- "-") (number_literal "1U")) () ")")) (+ "+") (parenthesized_expression "((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f))" (( "(") (binary_expression "(uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)" (cast_expression "(uint)puVar13[9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009180c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009180c & 0x1f" (cast_expression "(byte)DAT_0009180c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009180c")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) () ")")))) (; ";")) (if_statement "if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))\n            {\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" (if "if") (parenthesized_expression "((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))" (( "(") (binary_expression "(piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50)))" (parenthesized_expression "(piVar24[uVar22 * 2 + 1] == 0)" (( "(") (binary_expression "piVar24[uVar22 * 2 + 1] == 0" (subscript_expression "piVar24[uVar22 * 2 + 1]" (identifier "piVar24") ([ "[") (binary_expression "uVar22 * 2 + 1" (binary_expression "uVar22 * 2" (identifier "uVar22") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((piVar26 <= local_4c || (local_4c < local_50)))" (( "(") (parenthesized_expression "(piVar26 <= local_4c || (local_4c < local_50))" (( "(") (binary_expression "piVar26 <= local_4c || (local_4c < local_50)" (binary_expression "piVar26 <= local_4c" (identifier "piVar26") (<= "<=") (identifier "local_4c")) (|| "||") (parenthesized_expression "(local_4c < local_50)" (( "(") (binary_expression "local_4c < local_50" (identifier "local_4c") (< "<") (identifier "local_50")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              uVar6 = *puVar13;\n              uVar12 = *local_48;\n              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);\n            }" ({ "{") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "uVar12 = *local_48;" (assignment_expression "uVar12 = *local_48" (identifier "uVar12") (= "=") (pointer_expression "*local_48" (* "*") (identifier "local_48"))) (; ";")) (expression_statement "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" (identifier "uVar18") (= "=") (call_expression "dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" (identifier "dcgettext") (argument_list "(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"" (" """) (string_content "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);" (call_expression "FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" (identifier "FUN_00031760") (argument_list "(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar6") (, ",") (identifier "piVar26") (, ",") (identifier "pvVar1") (, ",") (identifier "uVar12") (, ",") (identifier "local_50") (, ",") (identifier "local_4c") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000298a2:\n          free(piVar24);" (statement_identifier "LAB_000298a2") (: ":") (expression_statement "free(piVar24);" (call_expression "free(piVar24)" (identifier "free") (argument_list "(piVar24)" (( "(") (identifier "piVar24") () ")"))) (; ";"))) (for_statement "for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;\n              puVar20 = (undefined4 *)puVar20[2]) {\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" (for "for") (( "(") (assignment_expression "puVar20 = DAT_000917ec" (identifier "puVar20") (= "=") (identifier "DAT_000917ec")) (; ";") (comma_expression "puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0" (assignment_expression "puVar13 = DAT_000917dc" (identifier "puVar13") (= "=") (identifier "DAT_000917dc")) (, ",") (binary_expression "puVar20 != (undefined4 *)0x0" (identifier "puVar20") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar20 = (undefined4 *)puVar20[2]" (identifier "puVar20") (= "=") (cast_expression "(undefined4 *)puVar20[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[2]" (identifier "puVar20") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n            if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }\n          }" ({ "{") (if_statement "if (puVar20[0xb] != 0) {\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" (if "if") (parenthesized_expression "(puVar20[0xb] != 0)" (( "(") (binary_expression "puVar20[0xb] != 0" (subscript_expression "puVar20[0xb]" (identifier "puVar20") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = *puVar20;\n              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);\n              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);\n              FUN_00031760(uVar12,uVar6,iVar5);\n            }" ({ "{") (expression_statement "uVar6 = *puVar20;" (assignment_expression "uVar6 = *puVar20" (identifier "uVar6") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);" (assignment_expression "iVar5 = puVar20[7] - (puVar20[5] + puVar20[4])" (identifier "iVar5") (= "=") (binary_expression "puVar20[7] - (puVar20[5] + puVar20[4])" (subscript_expression "puVar20[7]" (identifier "puVar20") ([ "[") (number_literal "7") (] "]")) (- "-") (parenthesized_expression "(puVar20[5] + puVar20[4])" (( "(") (binary_expression "puVar20[5] + puVar20[4]" (subscript_expression "puVar20[5]" (identifier "puVar20") ([ "[") (number_literal "5") (] "]")) (+ "+") (subscript_expression "puVar20[4]" (identifier "puVar20") ([ "[") (number_literal "4") (] "]"))) () ")")))) (; ";")) (expression_statement "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);" (assignment_expression "uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" (identifier "uVar12") (= "=") (call_expression "dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" (identifier "dcngettext") (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: region `%s\' overflowed by %lu byte\n"" (" """) (string_content "%X%P: region `%s") (escape_sequence "\'") (string_content " overflowed by %lu byte") (escape_sequence "\n") (" """)) (, ",") (string_literal ""%X%P: region `%s\' overflowed by %lu bytes\n"" (" """) (string_content "%X%P: region `%s") (escape_sequence "\'") (string_content " overflowed by %lu bytes") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar5") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6,iVar5);" (call_expression "FUN_00031760(uVar12,uVar6,iVar5)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6,iVar5)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto joined_r0x00028c93;" (goto "goto") (statement_identifier "joined_r0x00028c93") (; ";")) (} "}"))) (} "}"))) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" (identifier "free") (argument_list "(piVar24)" (( "(") (identifier "piVar24") () ")"))) (; ";")) (expression_statement "puVar13 = DAT_000917dc;" (assignment_expression "puVar13 = DAT_000917dc" (identifier "puVar13") (= "=") (identifier "DAT_000917dc")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "joined_r0x00028c93:\n  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" (statement_identifier "joined_r0x00028c93") (: ":") (for_statement "for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar13 = (undefined4 *)puVar13[1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) () ")") (compound_statement "{\n    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);\n    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }\n  }" ({ "{") (expression_statement "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);" (assignment_expression "iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" (identifier "iVar5") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00091c3c,*puVar13,0,0,1)" (( "(") (identifier "DAT_00091c3c") (, ",") (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" (if "if") (parenthesized_expression "((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)))" (( "(") (binary_expression "(iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))" (( "(") (binary_expression "1 < (byte)(*(char *)(iVar5 + 0xc) - 3U)" (number_literal "1") (< "<") (call_expression "(byte)(*(char *)(iVar5 + 0xc) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(iVar5 + 0xc) - 3U)" (( "(") (binary_expression "*(char *)(iVar5 + 0xc) - 3U" (pointer_expression "*(char *)(iVar5 + 0xc)" (* "*") (cast_expression "(char *)(iVar5 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (number_literal "3U")) () ")")))) () ")"))) () ")")) (compound_statement "{\n      uVar6 = *puVar13;\n      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00031760(uVar12,uVar6);\n    }" ({ "{") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: required symbol `%s\' not defined\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: required symbol `%s\' not defined\n"" (" """) (string_content "%X%P: required symbol `%s") (escape_sequence "\'") (string_content " not defined") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = DAT_00091bbc;" (assignment_expression "iVar5 = DAT_00091bbc" (identifier "iVar5") (= "=") (identifier "DAT_00091bbc")) (; ";")) (if_statement "if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {\n    iVar5 = 1;\n  }" (if "if") (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3))" (( "(") (binary_expression "(((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) != 2)" (( "(") (binary_expression "((byte)DAT_00091c20 & 0x43) != 2" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" (( "(") (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "0x43")) () ")")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(((byte)DAT_00091c20 & 3) != 3)" (( "(") (binary_expression "((byte)DAT_00091c20 & 3) != 3" (parenthesized_expression "((byte)DAT_00091c20 & 3)" (( "(") (binary_expression "(byte)DAT_00091c20 & 3" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    iVar5 = 1;\n  }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" (if "if") (parenthesized_expression "((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0))" (( "(") (binary_expression "(((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)" (parenthesized_expression "(((byte)DAT_00091c20 & 0x43) == 0x42)" (( "(") (binary_expression "((byte)DAT_00091c20 & 0x43) == 0x42" (parenthesized_expression "((byte)DAT_00091c20 & 0x43)" (( "(") (binary_expression "(byte)DAT_00091c20 & 0x43" (cast_expression "(byte)DAT_00091c20" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_00091c20")) (& "&") (number_literal "0x43")) () ")")) (== "==") (number_literal "0x42")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00091bbc == 0 && DAT_00091bb8 == 0)" (( "(") (binary_expression "DAT_00091bbc == 0 && DAT_00091bb8 == 0" (binary_expression "DAT_00091bbc == 0" (identifier "DAT_00091bbc") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00091bb8 == 0" (identifier "DAT_00091bb8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00031760(uVar6);\n  }" ({ "{") (expression_statement "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: gc-sections requires either an entry or an undefined symbol\n"" (" """) (string_content "%F%P: gc-sections requires either an entry or an undefined symbol") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" (identifier "FUN_00031760") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00091798 == (undefined *)0x0) {\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_00091798 == (undefined *)0x0)" (( "(") (binary_expression "DAT_00091798 == (undefined *)0x0" (identifier "DAT_00091798") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_00091798 = PTR_s_start_00091360;\n    iVar5 = 0;\n  }" ({ "{") (expression_statement "DAT_00091798 = PTR_s_start_00091360;" (assignment_expression "DAT_00091798 = PTR_s_start_00091360" (identifier "DAT_00091798") (= "=") (identifier "PTR_s_start_00091360")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);" (assignment_expression "iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" (identifier "iVar9") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00091c3c,DAT_00091798,0,0,1)" (( "(") (identifier "DAT_00091c3c") (, ",") (identifier "DAT_00091798") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" (if "if") (parenthesized_expression "((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2))" (( "(") (binary_expression "(iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)" (( "(") (binary_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar9 + 0xc) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(iVar9 + 0xc) - 3U)" (( "(") (binary_expression "*(char *)(iVar9 + 0xc) - 3U" (pointer_expression "*(char *)(iVar9 + 0xc)" (* "*") (cast_expression "(char *)(iVar9 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xc)" (( "(") (binary_expression "iVar9 + 0xc" (identifier "iVar9") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (number_literal "3U")) () ")"))) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);\n    if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }\n  }" ({ "{") (expression_statement "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x3c)" (( "(") (binary_expression "*(int *)(iVar9 + 0x14) + 0x3c" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (iVar8 != 0) {\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));\n      if (iVar5 != 0) {\n        return;\n      }\n      pcVar10 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_000290ef;\n    }" ({ "{") (expression_statement "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c));" (assignment_expression "iVar5 = bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" (identifier "iVar5") (= "=") (call_expression "bfd_set_start_address\n                        (DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" (identifier "bfd_set_start_address") (argument_list "(DAT_00091c50,\n                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c))" (( "(") (identifier "DAT_00091c50") (, ",") (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +\n                         *(int *)(iVar8 + 0x1c)" (binary_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18)" (pointer_expression "*(int *)(*(int *)(iVar9 + 0x14) + 0x38)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 0x14) + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0x14) + 0x38)" (( "(") (binary_expression "*(int *)(iVar9 + 0x14) + 0x38" (pointer_expression "*(int *)(iVar9 + 0x14)" (* "*") (cast_expression "(int *)(iVar9 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x14)" (( "(") (binary_expression "iVar9 + 0x14" (identifier "iVar9") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar9 + 0x18)" (* "*") (cast_expression "(int *)(iVar9 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x18)" (( "(") (binary_expression "iVar9 + 0x18" (identifier "iVar9") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (pointer_expression "*(int *)(iVar8 + 0x1c)" (* "*") (cast_expression "(int *)(iVar8 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x1c)" (( "(") (binary_expression "iVar8 + 0x1c" (identifier "iVar8") (+ "+") (number_literal "0x1c")) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar10 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar10 = "%F%P: %s: can\'t set start address\n"" (identifier "pcVar10") (= "=") (string_literal ""%F%P: %s: can\'t set start address\n"" (" """) (string_content "%F%P: %s: can") (escape_sequence "\'") (string_content "t set start address") (escape_sequence "\n") (" """))) (; ";")) (goto_statement "goto LAB_000290ef;" (goto "goto") (statement_identifier "LAB_000290ef") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);" (assignment_expression "uVar6 = bfd_scan_vma(DAT_00091798,local_20,0)" (identifier "uVar6") (= "=") (call_expression "bfd_scan_vma(DAT_00091798,local_20,0)" (identifier "bfd_scan_vma") (argument_list "(DAT_00091798,local_20,0)" (( "(") (identifier "DAT_00091798") (, ",") (identifier "local_20") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*local_20[0] != '\0') {\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" (if "if") (parenthesized_expression "(*local_20[0] != '\0')" (( "(") (binary_expression "*local_20[0] != '\0'" (pointer_expression "*local_20[0]" (* "*") (subscript_expression "local_20[0]" (identifier "local_20") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);\n    puVar15 = DAT_00091798;\n    if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }\n    uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }\n  }" ({ "{") (expression_statement "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);" (assignment_expression "iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" (identifier "iVar9") (= "=") (call_expression "bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354)" (identifier "bfd_get_section_by_name") (argument_list "(DAT_00091c50,PTR_s__text_00091354)" (( "(") (identifier "DAT_00091c50") (, ",") (identifier "PTR_s__text_00091354") () ")")))) (; ";")) (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" (identifier "puVar15") (= "=") (identifier "DAT_00091798")) (; ";")) (if_statement "if (iVar9 == 0) {\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar5 == 0) {\n        return;\n      }\n      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_000290ef:\n      puVar15 = DAT_00091798;\n      uVar6 = dcgettext(0,pcVar10,5);\n      FUN_00031760(uVar6,puVar15);\n      return;\n    }" ({ "{") (if_statement "if (iVar5 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" (identifier "pcVar10") (= "=") (string_literal ""%P: warning: cannot find entry symbol %s; not setting start address\n"" (" """) (string_content "%P: warning: cannot find entry symbol %s; not setting start address") (escape_sequence "\n") (" """))) (; ";")) (labeled_statement "LAB_000290ef:\n      puVar15 = DAT_00091798;" (statement_identifier "LAB_000290ef") (: ":") (expression_statement "puVar15 = DAT_00091798;" (assignment_expression "puVar15 = DAT_00091798" (identifier "puVar15") (= "=") (identifier "DAT_00091798")) (; ";"))) (expression_statement "uVar6 = dcgettext(0,pcVar10,5);" (assignment_expression "uVar6 = dcgettext(0,pcVar10,5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,pcVar10,5)" (identifier "dcgettext") (argument_list "(0,pcVar10,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar10") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6,puVar15);" (call_expression "FUN_00031760(uVar6,puVar15)" (identifier "FUN_00031760") (argument_list "(uVar6,puVar15)" (( "(") (identifier "uVar6") (, ",") (identifier "puVar15") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) {\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00031760(uVar12,puVar15,uVar6);\n      uVar6 = *(undefined4 *)(iVar9 + 0x1c);\n    }" ({ "{") (expression_statement "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: cannot find entry symbol %s; defaulting to %V\n"" (" """) (string_content "%P: warning: cannot find entry symbol %s; defaulting to %V") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,puVar15,uVar6);" (call_expression "FUN_00031760(uVar12,puVar15,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,puVar15,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "puVar15") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar9 + 0x1c);" (assignment_expression "uVar6 = *(undefined4 *)(iVar9 + 0x1c)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar9 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar9 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x1c)" (( "(") (binary_expression "iVar9 + 0x1c" (identifier "iVar9") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);" (assignment_expression "iVar5 = bfd_set_start_address(DAT_00091c50,uVar6)" (identifier "iVar5") (= "=") (call_expression "bfd_set_start_address(DAT_00091c50,uVar6)" (identifier "bfd_set_start_address") (argument_list "(DAT_00091c50,uVar6)" (( "(") (identifier "DAT_00091c50") (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: can\'t set start address\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: can\'t set start address\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: can\'t set start address\n"" (" """) (string_content "%F%P: can") (escape_sequence "\'") (string_content "t set start address") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6);" (call_expression "FUN_00031760(uVar6)" (identifier "FUN_00031760") (argument_list "(uVar6)" (( "(") (identifier "uVar6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "code_r0x00028eb3:\n  piVar24 = (int *)piVar24[6];" (statement_identifier "code_r0x00028eb3") (: ":") (expression_statement "piVar24 = (int *)piVar24[6];" (assignment_expression "piVar24 = (int *)piVar24[6]" (identifier "piVar24") (= "=") (cast_expression "(int *)piVar24[6]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]")))) (; ";"))) (goto_statement "goto joined_r0x0002800a;" (goto "goto") (statement_identifier "joined_r0x0002800a") (; ";")) (labeled_statement "LAB_000283a0:\n  uVar6 = *puVar13;" (statement_identifier "LAB_000283a0") (: ":") (expression_statement "uVar6 = *puVar13;" (assignment_expression "uVar6 = *puVar13" (identifier "uVar6") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";"))) (expression_statement "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" (identifier "uVar12") (= "=") (call_expression "dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: invalid length for memory region %s\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: invalid length for memory region %s\n"" (" """) (string_content "%F%P: invalid length for memory region %s") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar12,uVar6);" (call_expression "FUN_00031760(uVar12,uVar6)" (identifier "FUN_00031760") (argument_list "(uVar12,uVar6)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar6") () ")"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)puVar13[2];" (assignment_expression "puVar13 = (undefined4 *)puVar13[2]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto joined_r0x00028237;" (goto "goto") (statement_identifier "joined_r0x00028237") (; ";")) (labeled_statement "code_r0x000286ac:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" (statement_identifier "code_r0x000286ac") (: ":") (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20)" (parenthesized_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))" (( "(") (pointer_expression "**(code **)(*(int *)(piVar24[4] + 4) + 0x170)" (* "*") (pointer_expression "*(code **)(*(int *)(piVar24[4] + 4) + 0x170)" (* "*") (cast_expression "(code **)(*(int *)(piVar24[4] + 4) + 0x170)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(piVar24[4] + 4) + 0x170)" (( "(") (binary_expression "*(int *)(piVar24[4] + 4) + 0x170" (pointer_expression "*(int *)(piVar24[4] + 4)" (* "*") (cast_expression "(int *)(piVar24[4] + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[4] + 4)" (( "(") (binary_expression "piVar24[4] + 4" (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x170")) () ")"))))) () ")")) (argument_list "(puVar13,&DAT_00091c20)" (( "(") (identifier "puVar13") (, ",") (pointer_expression "&DAT_00091c20" (& "&") (identifier "DAT_00091c20")) () ")"))) (; ";"))) (expression_statement "puVar13 = (undefined4 *)puVar13[3];" (assignment_expression "puVar13 = (undefined4 *)puVar13[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar13[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")))) (; ";")) (goto_statement "goto joined_r0x00028684;" (goto "goto") (statement_identifier "joined_r0x00028684") (; ";")) (labeled_statement "code_r0x00028b27:\n  iVar5 = piVar24[6];" (statement_identifier "code_r0x00028b27") (: ":") (expression_statement "iVar5 = piVar24[6];" (assignment_expression "iVar5 = piVar24[6]" (identifier "iVar5") (= "=") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]"))) (; ";"))) (expression_statement "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" (identifier "dcgettext") (argument_list "(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%X%P: section `%s\' assigned to non-existent phdr `%s\'\n"" (" """) (string_content "%X%P: section `%s") (escape_sequence "\'") (string_content " assigned to non-existent phdr `%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031760(uVar6,iVar5,pbVar3);" (call_expression "FUN_00031760(uVar6,iVar5,pbVar3)" (identifier "FUN_00031760") (argument_list "(uVar6,iVar5,pbVar3)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar5") (, ",") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "piVar26 = (int *)*piVar26;" (assignment_expression "piVar26 = (int *)*piVar26" (identifier "piVar26") (= "=") (cast_expression "(int *)*piVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")))) (; ";")) (goto_statement "goto joined_r0x00028aeb;" (goto "goto") (statement_identifier "joined_r0x00028aeb") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *var_101;
  void *pvVar2;
  type_2 var_54;
  type_3 *var_5;
  type_4 *var_31;
  type_5 *var_22;
  type_6 *var_108;
  type_7 *var_105;
  type_2 *pbVar9;
  type_5 *pbVar10;
  type_8 *pbVar11;
  type_9 *var_79;
  type_10 **pplVar13;
  type_10 **pplVar14;
  type_1 *var_126;
  type_11 *var_132;
  type_12 *puVar17;
  type_10 **pplVar18;
  type_10 **var_21;
  type_13 *var_20;
  type_14 var_70;
  char var_57;
  int var_8;
  char *var_45;
  size_t var_33;
  type_15 var_39;
  int var_44;
  char *var_47;
  type_16 *pbVar29;
  type_17 *version;
  type_18 *pbVar30;
  char *fmt;
  type_1 uVar31;
  type_10 *plVar32;
  type_9 *var_78;
  type_19 **pplVar33;
  type_20 *var_52;
  type_21 *var_97;
  type_22 bVar36;
  type_8 **var_103;
  int var_46;
  int *var_124;
  type_23 var_129;
  type_2 *var_55;
  type_24 *var_112;
  type_2 var_53;
  type_18 *pbVar43;
  type_15 *extraout_ECX;
  type_15 *var_114;
  type_15 *extraout_ECX_00;
  type_25 *var_82;
  type_26 *plVar45;
  type_23 var_122;
  type_10 *var_17;
  type_9 *var_80;
  type_25 *var_83;
  type_23 var_123;
  type_16 *orig;
  type_10 *var_15;
  type_20 *var_84;
  type_6 *plVar53;
  type_25 *var_81;
  type_10 *var_18;
  type_6 *var_106;
  type_22 var_24;
  type_10 *var_19;
  type_8 **var_100;
  int *var_128;
  type_1 uVar61;
  type_27 *var_63;
  type_10 *plVar63;
  type_2 *var_88;
  type_5 *var_23;
  bool var_89;
  bool bVar67;
  type_2 bVar68;
  type_10 *var_25;
  void *var_130;
  type_1 *var_127;
  type_23 var_109;
  type_5 *var_61;
  type_23 var_68;
  type_22 bStack_14;
  
  bVar68 = 0;
  bStack_14 = 0x27e19;
  if (link_info.dynamic_list != (type_28 *)0x0) {
    var_1(&(link_info.dynamic_list)->head);
  }
  current_target = default_target;
  var_2(ldlang_open_output,statement_list.head);
  var_3();
  var_4();
  for (var_5 = entry_symbol.next; var_5 != (type_3 *)0x0; var_5 = var_5->next) {
    var_6(var_5->name);
  }
  var_8 = var_7();
  if (var_8 == 0) {
    var_45 = (char *)var_9(0,"%F%P: can not create hash table: %E\n",5);
    var_10(var_45);
  }
  var_11 = var_11 + 1;
  current_target = default_target;
  var_12(statement_list.head,OPEN_BFD_NORMAL);
  var_21 = input_file_chain.tail;
  var_18 = input_file_chain.head;
  pplVar18 = file_chain.tail;
  var_17 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    var_15 = stat_ptr->head;
    pplVar13 = stat_ptr->tail;
    var_8 = var_13();
    if (var_8 != 0) {
      var_45 = var_14();
      var_47 = (char *)var_9(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      var_10(var_47,var_45);
    }
    var_12(*pplVar13,OPEN_BFD_NORMAL);
    plVar45 = stat_ptr;
    if (stat_ptr->head != var_15) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar14 = plVar45->tail;
    var_15 = *pplVar13;
    plVar45->tail = pplVar13;
    *pplVar13 = (type_10 *)0x0;
    if (file_chain.head != var_17) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar13 = file_chain.tail;
    var_17 = *pplVar18;
    file_chain.tail = pplVar18;
    *pplVar18 = (type_10 *)0x0;
    if (input_file_chain.head != var_18) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar18 = input_file_chain.tail;
    var_18 = *var_21;
    input_file_chain.tail = var_21;
    *var_21 = (type_10 *)0x0;
    var_19 = file_chain.head;
    plVar63 = input_file_chain.head;
    if (var_15 != (type_10 *)0x0) {
      for (; plugin_insert = (type_13 *)plVar63,
          var_19 != (type_10 *)0x0; var_19 = (var_19->wild_statement).children.head)
      {
        if (((type_23)(var_19->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((type_23)(var_19->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_00029491;
          break;
        }
        if (((var_19->reloc_statement).section != (type_25 *)0x0) &&
           (((var_19->reloc_statement).section)->target_index == 0)) {
          plugin_insert = (type_13 *)var_19;
        }
        plVar63 = (type_10 *)plugin_insert;
      }
      var_19 = (type_10 *)plugin_insert;
      if ((type_10 *)plugin_insert == (type_10 *)0x0) {
        var_16("../../ld/ldlang.c",0x1c32);
        var_19 = (type_10 *)plugin_insert;
      }
LAB_00029491:
      plugin_insert = &var_19->input_statement;
      var_20 = plugin_insert;
      plVar45 = stat_ptr;
      *pplVar14 = (plugin_insert->header).next;
      (var_20->header).next = var_15;
      if (var_20 == (type_13 *)plVar45->tail) {
        plVar45->tail = pplVar14;
      }
      *pplVar18 = var_20->next_real_file;
      var_20->next_real_file = var_18;
      var_21 = file_chain.tail;
      if (input_file_chain.tail == &var_20->next_real_file) {
        input_file_chain.tail = pplVar18;
      }
      if (var_20->filename == (char *)0x0) {
        *pplVar13 = file_chain.head;
        file_chain.head = var_17;
        if ((type_26 *)var_21 != &file_chain) {
          pplVar13 = file_chain.tail;
        }
      }
      else {
        *pplVar13 = var_20->next;
        var_20->next = var_17;
        if (var_21 != &var_20->next) {
          pplVar13 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar13;
      pplVar18 = file_chain.tail;
      var_17 = file_chain.head;
      var_11 = var_11 + 1;
      var_12(statement_list.head,OPEN_BFD_RESCAN);
      if (file_chain.head != var_17) {
        var_16("../../ld/ldlang.c",0x1baf);
      }
      var_17 = *pplVar18;
      file_chain.tail = pplVar18;
      *pplVar18 = (type_10 *)0x0;
      while (var_17 != (type_10 *)0x0) {
        var_22 = ((var_17->input_statement).the_bfd)->my_archive;
        var_23 = (var_17->input_statement).the_bfd;
        if (var_22 != (type_5 *)0x0) {
          var_23 = var_22;
        }
        var_18 = file_chain.head;
        if (input_file_chain.head != (type_10 *)0x0) {
          var_19 = (type_10 *)0x0;
          var_25 = (type_10 *)0x0;
          var_15 = input_file_chain.head;
          do {
            while ((type_5 *)(var_15->wild_statement).section_list != var_23) {
              if (((type_5 *)(var_15->wild_statement).section_list != (type_5 *)0x0) &&
                 ((var_15->wild_statement).children.head != (type_10 *)0x0)) {
                var_19 = var_15;
              }
              var_15 = (type_10 *)(var_15->wild_statement).children.tail;
              if (var_15 == (type_10 *)0x0) goto LAB_000295b0;
            }
            var_24 = (var_15->data_statement).output_offset;
            if (var_24 != 0) {
              plVar45 = (type_26 *)(var_24 + 0x18);
              var_18 = *(type_10 **)(var_24 + 0x18);
              goto LAB_000295f1;
            }
            var_15 = (type_10 *)(var_15->wild_statement).children.tail;
            var_25 = var_19;
          } while (var_15 != (type_10 *)0x0);
LAB_000295b0:
          if (var_25 != (type_10 *)0x0) {
            var_18 = var_25;
          }
        }
        plVar45 = &(var_18->wild_statement).children;
        for (var_18 = plVar45->head; var_18 != (type_10 *)0x0;
            var_18 = (var_18->wild_statement).children.head) {
          if ((((type_23)(var_18->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&
             (((var_18->reloc_statement).section)->target_index == 0)) {
            var_18 = plVar45->head;
            break;
          }
          plVar45 = &(var_18->wild_statement).children;
        }
LAB_000295f1:
        var_25 = (type_10 *)&(var_17->data_statement).output_offset;
        if (var_22 == (type_5 *)0x0) {
          plVar45->head = var_17;
          var_15 = (var_17->wild_statement).children.head;
          (var_17->data_statement).output_offset = (type_22)var_18;
          var_17 = var_15;
        }
        else {
          var_24 = (var_17->data_statement).output_offset;
          if (var_24 != 0) {
            var_23 = *(type_5 **)(*(int *)(var_24 + 0x10) + 0x88);
            while (var_22 == var_23) {
              var_25 = (type_10 *)(var_24 + 0x18);
              var_24 = *(type_22 *)(var_24 + 0x18);
              if (var_24 == 0) break;
              var_23 = *(type_5 **)(*(int *)(var_24 + 0x10) + 0x88);
            }
          }
          plVar45->head = var_17;
          var_17 = *(type_10 **)var_25;
          *(type_10 **)var_25 = var_18;
          if (var_22->usrdata != (void *)0x0) {
            *(type_29 **)((int)var_22->usrdata + 0x18) =
                 (type_29 *)((int)var_25 + -0x18);
          }
        }
      }
    }
  }
  if (link_info.gc_sym_list != (type_3 *)0x0) {
    var_16("../../ld/ldlang.c",0x1c67);
  }
  link_info.gc_sym_list = &entry_symbol;
  if (entry_symbol.name == (char *)0x0) {
    link_info.gc_sym_list = entry_symbol.next;
    if (var_26 != (char *)0x0) {
      var_27(var_26);
    }
  }
  if (link_info.init_function != (char *)0x0) {
    var_27(link_info.init_function);
  }
  if (link_info.fini_function != (char *)0x0) {
    var_27(link_info.fini_function);
  }
  var_28();
  if ((config.map_file != (type_30 *)0x0) && (var_29 != (type_4 *)0x0)) {
    var_45 = (char *)var_9(0,
                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"
                                ,5);
    var_30(var_45);
    for (var_31 = var_29; var_31 != (type_4 *)0x0; var_31 = var_31->next) {
      var_30("%s",var_31->soname);
      var_33 = var_32(var_31->soname);
      if (0x1c < var_33) {
        var_34();
        var_33 = 0;
      }
      do {
        var_35();
        var_33 = var_33 + 1;
      } while (var_33 != 0x1e);
      if (var_31->ref != (type_5 *)0x0) {
        var_30("%pB ",var_31->ref);
      }
      var_30("(%pT)\n",var_31->name);
    }
  }
  var_36();
  var_17 = file_chain.head;
joined_r0x0002800a:
  if (var_17 != (type_10 *)0x0) {
    do {
      if (((type_23)(var_17->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        var_22 = (var_17->input_statement).the_bfd;
        var_8 = var_37
                           (var_22,link_info.output_bfd,command_line.accept_unknown_input_arch);
        var_23 = link_info.output_bfd;
        if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
          if (var_8 != 0) {
            pbVar30 = var_22->xvec;
            pbVar43 = (link_info.output_bfd)->xvec;
            if ((pbVar30->flavour != pbVar43->flavour) && ((var_22->field_0x28 & 0x20) != 0))
            goto LAB_000282ef;
            goto LAB_00028063;
          }
          if ((var_22->field_0x28 & 0x20) != 0) {
            pbVar30 = var_22->xvec;
            pbVar43 = (link_info.output_bfd)->xvec;
LAB_000282ef:
            var_45 = pbVar43->name;
            var_47 = pbVar30->name;
            fmt = (char *)var_9(0,
                                    "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                                    ,5);
            var_10(fmt,var_47,var_22,var_45,var_23);
            goto joined_r0x0002832b;
          }
        }
        else {
joined_r0x0002832b:
          if (var_8 != 0) {
LAB_00028063:
            if (var_22->section_count == 0) goto LAB_000280c0;
            uVar61 = 0;
            if (command_line.warn_mismatch == 0) {
              uVar61 = var_38(ignore_bfd_errors);
            }
            var_39 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(var_22,&link_info)
            ;
            if (var_39 == 0) {
              if (command_line.warn_mismatch != 0) {
                var_45 = (char *)var_9(0,
                                            "%X%P: failed to merge target specific data of file %pB\n"
                                            ,5);
                var_10(var_45,var_22);
                goto LAB_00028ea4;
              }
            }
            else {
LAB_00028ea4:
              if (command_line.warn_mismatch != 0) goto code_r0x00028eb3;
            }
            var_38(uVar61);
            goto LAB_000280c0;
          }
        }
        if (command_line.warn_mismatch == 0) goto LAB_000280c0;
        uVar61 = var_40(link_info.output_bfd);
        uVar31 = var_40(var_22);
        var_45 = (char *)var_9(0,
                                    "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                                    ,5);
        var_10(var_45,uVar31,var_22,uVar61);
        var_17 = (var_17->wild_statement).children.head;
      }
      else {
LAB_000280c0:
        var_17 = (var_17->wild_statement).children.head;
      }
      if (var_17 == (type_10 *)0x0) break;
    } while( true );
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (type_16 *)0x0;
    for (var_17 = file_chain.head; var_17 != (type_10 *)0x0;
        var_17 = (var_17->wild_statement).children.head) {
      while (var_8 = var_41((var_17->wild_statement).section_list,".exports"),
            var_8 != 0) {
        var_46 = *(int *)(var_8 + 0x24);
        var_45 = (char *)var_42(var_46);
        var_44 = var_43
                           ((var_17->wild_statement).section_list,var_8,var_45,0,0,var_46);
        if (var_44 == 0) {
          var_47 = (char *)var_9(0,"%X%P: unable to read .exports section contents\n",5);
          var_10(var_47,var_8);
        }
        var_47 = var_45 + var_46;
        for (; var_45 < var_47; var_45 = var_45 + var_33 + 1) {
          orig = var_48(orig,var_45,(char *)0x0,0);
          var_33 = var_32(var_45);
        }
        var_17 = (var_17->wild_statement).children.head;
        *(type_23 *)(var_8 + 0x14) = *(type_23 *)(var_8 + 0x14) | 0x208000;
        if (var_17 == (type_10 *)0x0) goto LAB_000281aa;
      }
    }
LAB_000281aa:
    pbVar29 = var_48((type_16 *)0x0,"*",(char *)0x0,0);
    version = (type_17 *)var_49(1,0x3c);
    (version->globals).list = orig;
    (version->locals).list = pbVar29;
    version->match = lang_vers_match;
    version->name_indx = 0xffffffff;
    var_50
              (command_line.version_exports_section,version,(type_31 *)0x0);
  }
  var_51();
  puVar17 = PTR__sch_istable_00090fa8;
  if (config.build_constructors != 0) {
    var_61 = link_info.input_bfds;
    var_57 = (link_info.output_bfd)->xvec->symbol_leading_char;
    if (link_info.input_bfds != (type_5 *)0x0) {
      do {
        for (var_52 = var_61->sections; var_52 != (type_20 *)0x0; var_52 = var_52->next) {
          while( true ) {
            pbVar9 = (type_2 *)var_52->name;
            var_53 = *pbVar9;
            if (var_53 == 0) break;
            var_54 = puVar17[(type_23)var_53 * 2];
            var_55 = pbVar9;
            while (((var_54 & 0x8c) != 0 || (var_53 == 0x5f))) {
              var_55 = var_55 + 1;
              var_53 = *var_55;
              if (var_53 == 0) goto LAB_000299d0;
              var_54 = puVar17[(type_23)var_53 * 2];
            }
            var_52 = var_52->next;
            if (var_52 == (type_20 *)0x0) goto LAB_000299b0;
          }
LAB_000299d0:
          var_33 = var_32((char *)pbVar9);
          var_45 = (char *)var_42(var_33 + 10);
          *var_45 = var_57;
          var_56(var_45 + (var_57 != '\0'),"__start_%s",pbVar9);
          var_58(var_45,var_52);
          var_45[1] = var_57;
          var_59(var_45 + (2 - (type_23)(var_57 == '\0')),"__stop",6);
          var_58(var_45 + 1,var_52);
          var_60(var_45);
        }
LAB_000299b0:
        var_61 = (var_61->link).next;
      } while (var_61 != (type_5 *)0x0);
    }
  }
  var_62(lang_mark_phase_enum);
  var_63 = lang_memory_region_list;
joined_r0x00028237:
  if (var_63 != (type_32 *)0x0) {
    do {
      if (var_63->origin_exp != (type_24 *)0x0) {
        var_64(var_63->origin_exp);
        var_24 = expld.result.value;
        if (expld.result.valid_p == 0) {
          var_45 = (var_63->type_37).name;
          var_47 = (char *)var_9(0,"%F%P: invalid origin for memory region %s\n",5);
          var_10(var_47,var_45);
        }
        else {
          var_63->origin = expld.result.value;
          var_63->current = var_24;
        }
      }
      if (var_63->length_exp != (type_24 *)0x0) {
        var_64(var_63->length_exp);
        if (expld.result.valid_p == 0) goto LAB_000283a0;
        var_63->length = expld.result.value;
      }
      var_63 = var_63->next;
      if (var_63 == (type_27 *)0x0) break;
    } while( true );
  }
  expld.phase = lang_first_phase_enum;
  if (((link_info._7_1_ & 0x20) == 0) &&
     (((link_info._0_1_ & 3) != 2 || (command_line.force_common_definition != 0)))) {
    if (config.sort_common == var_65) {
      var_66(link_info.hash,lang_one_common,0);
    }
    else {
      if (config.sort_common == var_67) {
        var_68 = 4;
        do {
          var_66(link_info.hash,lang_one_common,&var_68);
          var_68 = var_68 - 1;
        } while (var_68 != 0);
        var_68 = 0;
      }
      else {
        var_68 = 0;
        do {
          var_66(link_info.hash,lang_one_common,&var_68);
          var_68 = var_68 + 1;
        } while (var_68 < 5);
        var_68 = 0xffffffff;
      }
      var_66(link_info.hash,lang_one_common,&var_68);
    }
  }
  var_69(statement_list.head);
  var_70 = link_info._0_1_;
  var_17 = file_chain.head;
  if ((link_info._0_1_ & 3) == 2) {
    for (; var_17 != (type_10 *)0x0; var_17 = (var_17->wild_statement).children.head
        ) {
      if (((type_23)(var_17->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (var_52 = ((var_17->input_statement).the_bfd)->sections; var_52 != (type_20 *)0x0
            ; var_52 = var_52->next) {
          if ((var_52->flags & 0x2000) == 0) {
            var_52->flags = var_52->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((var_70 & 0x40) != 0) {
    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);
  }
  var_22 = link_info.input_bfds;
  if ((link_info._6_1_ & 0x20) != 0) {
    for (; var_22 != (type_5 *)0x0; var_22 = (var_22->link).next) {
      var_8 = var_71(var_22,&link_info);
      if (var_8 == 0) {
        config.make_executable = 0;
      }
    }
  }
  var_72();
  var_18 = (type_10 *)0x0;
  var_73(statement_list.head);
  var_11 = var_11 + 1;
  var_74
            (statement_list.head,(char *)0x0,(type_21 *)0x0);
  var_15 = (type_10 *)0x0;
  var_17 = ((lang_output_section_statement.head)->header).next;
  if (var_17 == (type_10 *)0x0) {
LAB_00028564:
    if (var_18 != (type_10 *)0x0) {
      (var_18->output_section_statement).constraint =
           -2 - (var_18->output_section_statement).constraint;
      while ((var_15 != var_18 &&
             (var_18 = (type_10 *)(var_18->output_section_statement).next,
             var_18 != (type_10 *)0x0))) {
        (var_18->output_section_statement).constraint =
             -2 - (var_18->output_section_statement).constraint;
      }
    }
  }
  else {
    var_19 = (type_10 *)0x0;
    plVar63 = lang_output_section_statement.head;
    while (plVar32 = var_17, (var_17->header).type == var_75) {
      if ((var_15 != (type_10 *)0x0) &&
         (var_17 != (type_10 *)(var_15->wild_statement).section_list)) {
        var_16("../../ld/ldlang.c",0xea0);
        plVar32 = (plVar63->header).next;
      }
      (var_17->output_section_statement).constraint =
           -2 - (var_17->output_section_statement).constraint;
      var_15 = var_17;
      var_18 = var_17;
      if (var_19 != (type_10 *)0x0) goto LAB_0002855a;
LAB_0002855c:
      var_17 = (plVar32->header).next;
      var_19 = var_18;
      plVar63 = plVar32;
      if (var_17 == (type_10 *)0x0) goto LAB_00028564;
    }
    if ((var_17->header).type != var_76) {
LAB_0002855a:
      var_18 = var_19;
      goto LAB_0002855c;
    }
    var_78 = var_77((var_17->wild_statement).filename,0,0);
    if (var_78 != (type_21 *)0x0) {
      if ((var_17->wild_statement).filenames_sorted != 0) {
        do {
          var_78 = var_78->prev;
          if (var_78 == (type_9 *)0x0) goto LAB_00028636;
        } while (var_78->constraint < 0);
      }
      if (var_15 != (type_10 *)0x0) {
        var_80 = (var_19->output_section_statement).prev;
        var_79 = (var_15->output_section_statement).next;
        var_80->next = var_79;
        if (var_79 == (type_9 *)0x0) {
          lang_output_section_statement.tail = (type_10 **)&var_80->next;
          (var_15->wild_statement).section_list = (type_33 *)var_78->next;
          var_80 = var_78->next;
          if (var_80 != (type_9 *)0x0) goto LAB_00028f0d;
LAB_00029143:
          lang_output_section_statement.tail =
               (type_10 **)&(var_15->output_section_statement).next;
        }
        else {
          var_79->prev = var_80;
          (var_15->wild_statement).section_list = (type_33 *)var_78->next;
          var_80 = var_78->next;
          if (var_80 == (type_9 *)0x0) goto LAB_00029143;
LAB_00028f0d:
          var_80->prev = (type_9 *)var_15;
        }
        (var_19->output_section_statement).prev = var_78;
        var_83 = (type_25 *)0x0;
        var_82 = (type_25 *)0x0;
        var_78->next = (type_9 *)var_19;
        do {
          (var_19->output_section_statement).constraint =
               -2 - (var_19->output_section_statement).constraint;
          var_81 = (var_19->output_section_statement).type_20;
          if (((var_81 != (type_25 *)0x0) && (var_81->owner != (type_5 *)0x0)) &&
             (var_83 = var_81, var_82 == (type_25 *)0x0)) {
            var_82 = var_81;
          }
        } while ((var_15 != var_19) &&
                (var_19 = (type_10 *)(var_19->wild_statement).section_list,
                var_19 != (type_10 *)0x0));
        var_19 = (type_10 *)0x0;
        if (var_83 != (type_25 *)0x0) {
          var_81 = var_78->type_20;
          if (var_81 == (type_25 *)0x0) {
            var_19 = (type_10 *)var_78->prev;
            if (var_19 != (type_10 *)0x0) {
              do {
                if (((-1 < (var_19->output_section_statement).constraint) &&
                    (var_81 = (var_19->output_section_statement).type_20,
                    var_81 != (type_25 *)0x0)) && (var_81->owner != (type_5 *)0x0))
                goto LAB_00028f6a;
                var_19 = (type_10 *)(var_19->wild_statement).keep_sections;
              } while (var_19 != (type_10 *)0x0);
              var_19 = (type_10 *)0x0;
            }
          }
          else {
LAB_00028f6a:
            var_19 = (type_10 *)0x0;
            if (var_81 != var_83) {
              var_52 = var_82->prev;
              var_84 = var_83->next;
              if (var_52 == (type_20 *)0x0) {
                (link_info.output_bfd)->sections = var_84;
              }
              else {
                var_52->next = var_84;
                var_84 = var_83->next;
              }
              if (var_84 == (type_20 *)0x0) {
                (link_info.output_bfd)->section_last = var_52;
              }
              else {
                var_84->prev = var_52;
              }
              var_52 = var_81->next;
              var_83->next = var_52;
              if (var_52 == (type_20 *)0x0) {
                (link_info.output_bfd)->section_last = var_83;
              }
              else {
                var_52->prev = var_83;
              }
              var_82->prev = var_81;
              var_19 = (type_10 *)0x0;
              var_81->next = var_82;
            }
          }
        }
      }
      pplVar33 = var_85(var_78);
      var_17 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((plVar63->header).next)->header).next;
      var_18 = *pplVar33;
      (plVar63->header).next = var_18;
      if (var_18 == (type_10 *)0x0) {
        statement_list.tail = (type_10 **)plVar63;
      }
      *pplVar33 = var_17;
      var_15 = (type_10 *)0x0;
      var_18 = var_19;
      plVar32 = lang_output_section_statement.head;
      goto LAB_0002855c;
    }
LAB_00028636:
    var_45 = (var_17->wild_statement).filename;
    var_47 = (char *)var_9(0,"%F%P: %s not found for insert\n",5);
    var_10(var_47,var_45);
  }
  var_52 = (type_20 *)(var_86 + 0x150);
  for (var_17 = file_chain.head; var_17 != (type_10 *)0x0;
      var_17 = (var_17->wild_statement).children.head) {
    var_84 = ((var_17->input_statement).the_bfd)->sections;
joined_r0x00028684:
    if (var_84 != (type_20 *)0x0) {
      do {
        if (var_84->output_section == (type_20 *)0x0) {
          if (((type_23)(var_17->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x000286ac;
          var_39 = var_87((type_25 *)var_84->flags);
          var_89 = false;
          bVar67 = var_39 == 0;
          if (bVar67) {
            pbVar9 = (type_2 *)var_84->name;
            var_8 = 7;
            var_55 = pbVar9;
            var_88 = (type_2 *)"COMMON";
            do {
              if (var_8 == 0) break;
              var_8 = var_8 + -1;
              var_89 = *var_55 < *var_88;
              bVar67 = *var_55 == *var_88;
              var_55 = var_55 + (type_23)bVar68 * -2 + 1;
              var_88 = var_88 + (type_23)bVar68 * -2 + 1;
            } while (bVar67);
            if ((!var_89 && !bVar67) == var_89) {
              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {
                if (var_90 == (type_21 *)0x0) {
                  var_90 = var_77(".bss",0,1);
                }
                var_91(&var_90->children,var_84,(type_34 *)0x0,
                                 var_90);
              }
            }
            else if (config.orphan_handling == var_92) {
              var_97 = var_77("/DISCARD/",0,1);
              if ((var_97->addr_tree == (type_35 *)0x0) &&
                 (((link_info._0_1_ & 3) == 2 || ((var_84->flags & 3) == 0)))) {
                var_112 = var_93(0);
                var_97->addr_tree = var_112;
              }
              var_91(&var_97->children,var_84,(type_34 *)0x0,var_97);
            }
            else {
              if (config.orphan_handling == var_94) {
                var_22 = var_84->owner;
                var_45 = (char *)var_9(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                var_10(var_45,var_84,var_22);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (var_39 = var_95(var_84,(type_21 *)0x0),
                 var_39 == 0)) {
                var_8 = 0;
              }
              else {
                var_8 = 0x17e;
              }
              var_97 = var_96(var_84,(char *)pbVar9,var_8);
              if (var_97 == (type_21 *)0x0) {
                var_97 = var_77((char *)pbVar9,var_8,1);
                if ((var_97->addr_tree == (type_35 *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((var_84->flags & 3) == 0)))) {
                  var_112 = var_93(0);
                  var_97->addr_tree = var_112;
                }
                var_91(&var_97->children,var_84,(type_34 *)0x0,var_97);
              }
              if (config.orphan_handling == var_98) {
                var_45 = var_97->name;
                var_22 = var_84->owner;
                var_47 = (char *)var_9(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                var_10(var_47,var_84,var_22,var_45);
              }
            }
          }
          else {
            var_84->output_section = var_52;
          }
        }
        var_84 = var_84->next;
        if (var_84 == (type_20 *)0x0) break;
      } while( true );
    }
  }
  var_53 = link_info._0_1_ & 3;
  var_100 = var_118;
  var_17 = lang_output_section_statement.head;
  var_22 = link_info.output_bfd;
  if (var_53 != 2) {
    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);
    var_8 = var_41(link_info.output_bfd,".text");
    if (var_8 == 0) {
      var_53 = link_info._0_1_ & 3;
      var_100 = var_118;
      var_17 = lang_output_section_statement.head;
      var_22 = link_info.output_bfd;
    }
    else {
      var_53 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(type_23 *)(var_8 + 0x14) = *(type_23 *)(var_8 + 0x14) & 0xfffffff7;
        var_100 = var_118;
        var_17 = lang_output_section_statement.head;
        var_22 = link_info.output_bfd;
      }
      else {
        *(type_23 *)(var_8 + 0x14) = *(type_23 *)(var_8 + 0x14) | 8;
        var_100 = var_118;
        var_17 = lang_output_section_statement.head;
        var_22 = link_info.output_bfd;
      }
    }
  }
  for (; var_118 = var_100, link_info.output_bfd = var_22,
      var_17 != (type_10 *)0x0;
      var_17 = (type_10 *)(var_17->wild_statement).section_list) {
    var_82 = (var_17->data_statement).output_section;
    if ((((var_82 != (type_25 *)0x0) &&
         ((var_17->wild_statement).walk_wild_section_handler == (type_36)0x0))
        && ((var_17->wild_statement).handler_data[2] == (type_33 *)0x0)) &&
       (((var_17->wild_statement).handler_data[1] == (type_33 *)0x0 &&
        ((var_17->wild_statement).exclude_name_list == (type_37 *)var_82->lma)))) {
      (var_17->wild_statement).walk_wild_section_handler =
           (type_36)var_82->size;
    }
    var_100 = var_118;
    var_22 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (var_99 != 0)) {
    var_103 = var_100 + var_99;
    do {
      while (pbVar11 = *var_100, (pbVar11->field_0xd & 8) == 0) {
        var_23 = (pbVar11->u).undef.abfd;
        var_101 = *(type_1 **)&var_23->proxy_origin;
        if (((var_101 == (type_1 *)0x0) || ((type_5 *)var_101[0x25] != var_22)) ||
           (var_8 = var_102(var_23->filename,(char *)*var_101), var_8 != 0)) {
          pbVar11->field_0xc = 1;
          (pbVar11->u).undef.abfd = (type_5 *)0x0;
          break;
        }
        var_100 = var_100 + 1;
        if (var_100 == var_103) goto LAB_000288f7;
      }
      var_100 = var_100 + 1;
    } while (var_100 != var_103);
  }
LAB_000288f7:
  if (var_53 != 2) {
    for (var_82 = (link_info.output_bfd)->sections; var_82 != (type_25 *)0x0;
        var_82 = var_82->next) {
      var_45 = var_82->name;
      var_33 = var_32(var_45);
      var_47 = (char *)var_42(var_33 + 10);
      var_56(var_47,".startof.%s",var_45);
      var_58(var_47,var_82);
      var_59(var_47 + 1,".size",5);
      var_58(var_47 + 1,var_82);
      var_60(var_47);
    }
  }
  var_104();
  plVar53 = (type_6 *)0x0;
  var_130 = (void *)var_42(0x28);
  var_109 = 10;
  for (var_105 = lang_phdr_list; var_105 != (type_7 *)0x0; var_105 = var_105->next) {
    var_25 = (type_10 *)0x0;
    for (var_17 = lang_output_section_statement.head; var_17 != (type_10 *)0x0;
        var_17 = (type_10 *)(var_17->wild_statement).section_list) {
      if (-1 < (var_17->output_section_statement).constraint) {
        var_106 = (var_17->output_section_statement).phdrs;
        if (var_106 == (type_6 *)0x0) {
          if ((((var_17->output_section_statement).sectype != var_107) &&
              ((var_17->output_section_statement).type_20 != (type_25 *)0x0)) &&
             (((((var_17->output_section_statement).type_20)->flags & 1) != 0 &&
              (var_18 = var_17, var_106 = plVar53, var_105->type != 3)))) {
            while( true ) {
              plVar53 = var_106;
              if (var_106 != (type_6 *)0x0) goto LAB_000289ba;
              var_18 = (type_10 *)(var_18->output_section_statement).next;
              if (var_18 == (type_10 *)0x0) break;
              var_106 = (var_18->output_section_statement).phdrs;
            }
            plVar53 = (type_6 *)0x0;
            var_45 = (char *)var_9(0,"%F%P: no sections assigned to phdrs\n",5);
            var_10(var_45);
          }
        }
        else {
          plVar53 = var_106;
          var_108 = (type_6 *)(var_17->wild_statement).children.tail;
          while (var_108 != (type_6 *)0x0) {
LAB_000289ba:
            var_8 = var_102(var_106->name,var_105->name);
            var_122 = var_109;
            if (var_8 == 0) {
              if (var_109 <= var_25) {
                var_122 = var_109 * 2;
                var_130 = (void *)var_110(var_130,var_109 << 3);
              }
              *(type_10 ***)((int)var_130 + (int)var_25 * 4) =
                   (var_17->wild_statement).children.tail;
              var_25 = (type_10 *)((int)var_25 + 1);
              var_106->used = 1;
            }
            var_106 = var_106->next;
            var_109 = var_122;
            var_108 = var_106;
          }
        }
      }
    }
    var_24 = 0;
    if (var_105->flags != (type_24 *)0x0) {
      var_24 = var_111(var_105->flags,0,"phdr flags");
    }
    var_112 = var_105->at;
    bVar36 = 0;
    if (var_112 != (type_24 *)0x0) {
      bVar36 = var_111(var_112,0,"phdr load address");
      var_112 = var_105->at;
    }
    var_8 = var_113(link_info.output_bfd,var_105->type,var_105->flags != (type_24 *)0x0,
                             var_24,var_112 != (type_24 *)0x0,bVar36,var_105->filehdr,
                             var_105->phdrs,var_25,var_130);
    if (var_8 == 0) {
      var_45 = (char *)var_9(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      var_10(var_45);
    }
  }
  var_60(var_130);
  var_114 = extraout_ECX;
  for (var_17 = lang_output_section_statement.head; var_17 != (type_10 *)0x0;
      var_17 = (type_10 *)(var_17->wild_statement).section_list) {
    if ((-1 < (var_17->output_section_statement).constraint) &&
       ((var_17->wild_statement).children.tail != (type_10 **)0x0)) {
      var_82 = (type_25 *)(var_17->wild_statement).tree;
joined_r0x00028aeb:
      if (var_82 != (type_25 *)0x0) {
        do {
          var_89 = false;
          bVar67 = var_82->index == 0;
          if (bVar67) {
            pbVar9 = (type_2 *)var_82->id;
            var_114 = (type_15 *)0x5;
            var_55 = pbVar9;
            var_88 = (type_2 *)0x3d35d;
            do {
              if (var_114 == (type_15 *)0x0) break;
              var_114 = (type_15 *)((int)var_114 + -1);
              var_89 = *var_55 < *var_88;
              bVar67 = *var_55 == *var_88;
              var_55 = var_55 + (type_23)bVar68 * -2 + 1;
              var_88 = var_88 + (type_23)bVar68 * -2 + 1;
            } while (bVar67);
            if ((!var_89 && !bVar67) != var_89) goto code_r0x00028b27;
          }
          var_82 = (type_25 *)var_82->name;
          if (var_82 == (type_25 *)0x0) break;
        } while( true );
      }
    }
  }
  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {
    var_68 = 0;
    var_115
              (expld.dataseg.relro_start_stat,(type_38 *)&var_68,var_114);
    if (var_68 == 0) {
      link_info._3_1_ = link_info._3_1_ & 0xef;
    }
  }
  var_116((type_15 *)0x0,
                     (type_23)(1 < (type_23)link_info.disable_target_specific_optimizations));
  var_117();
  var_22 = link_info.output_bfd;
  var_122 = opb_shift;
  if (var_99 != 0) {
    var_100 = var_118 + var_99;
    var_23 = (type_5 *)(var_86 + 0x150);
    var_103 = var_118;
    do {
      while (pbVar11 = *var_103, (*(type_39 *)&pbVar11->field_0xc & 0x8ff) == 3) {
        var_45 = (pbVar11->root).string;
        var_130._0_1_ = (type_2)var_122;
        if (*var_45 != '.') {
          var_57 = var_22->xvec->symbol_leading_char;
          pbVar10 = (type_5 *)((pbVar11->u).def.section)->output_section;
          (pbVar11->u).undef.abfd = pbVar10;
          if (var_45[(var_57 != '\0') + 4] == 'o') {
            (pbVar11->u).def.value = pbVar10->id >> ((type_2)var_130 & 0x1f);
          }
          break;
        }
        if (var_45[2] != 'i') break;
        var_103 = var_103 + 1;
        (pbVar11->u).def.value = ((pbVar11->u).undef.abfd)->id >> ((type_2)var_130 & 0x1f);
        (pbVar11->u).undef.abfd = var_23;
        if (var_100 == var_103) goto LAB_00028c60;
      }
      var_103 = var_103 + 1;
    } while (var_100 != var_103);
  }
LAB_00028c60:
  var_62(lang_final_phase_enum);
  var_119();
  var_120();
  var_132 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    var_57 = var_121(link_info.output_bfd);
    var_52 = (link_info.output_bfd)->sections;
    var_122 = (1 << (var_57 - 1U & 0x1f)) * 2 - 1;
    if (var_52 != (type_20 *)0x0) {
      do {
        if ((var_52->flags & 1) != 0) {
          var_123 = var_52->vma + var_52->size & var_122;
          if ((var_123 == 0) || ((var_52->vma & var_122) <= var_123)) {
            var_123 = var_52->size + var_52->lma & var_122;
            if ((var_123 == 0) || ((var_52->lma & var_122) <= var_123)) goto LAB_000296b0;
            var_45 = var_52->name;
            var_47 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            var_45 = var_52->name;
            var_47 = "%X%P: section %s VMA wraps around address space\n";
          }
          var_47 = (char *)var_9(0,var_47,5);
          var_10(var_47,var_45);
        }
LAB_000296b0:
        var_52 = var_52->next;
      } while (var_52 != (type_20 *)0x0);
    }
    var_132 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      var_124 = (int *)var_42((link_info.output_bfd)->section_count << 3);
      var_122 = 0;
      var_52 = (link_info.output_bfd)->sections;
      if (var_52 != (type_20 *)0x0) {
        do {
          if ((((var_52->flags & 1) != 0) && ((var_52->flags & 0x402) != 0x400)) &&
             (var_52->size != 0)) {
            var_8 = var_122 * 2;
            var_122 = var_122 + 1;
            var_124[var_8] = (int)var_52;
            (var_124 + var_8)[1] = 0;
          }
          var_52 = var_52->next;
        } while (var_52 != (type_20 *)0x0);
        if (1 < var_122) {
          var_125(var_124,var_122,8,sort_sections_by_lma);
          var_109 = 0;
          var_127 = (type_1 *)0x0;
          var_25 = (type_10 *)0x0;
          var_128 = var_124;
          do {
            var_126 = (type_1 *)*var_128;
            var_17 = var_25;
            var_101 = var_127;
            var_123 = var_109;
            if ((*(type_2 *)(var_126 + 5) & 2) != 0) {
              var_123 = var_126[8];
              var_101 = (type_1 *)((var_123 - 1) + ((type_23)var_126[9] >> ((type_2)opb_shift & 0x1f)))
              ;
              var_17 = (type_10 *)var_126;
              if ((var_25 != (type_10 *)0x0) &&
                 ((var_123 <= var_127 || (var_127 < var_109)))) {
                uVar61 = *(type_1 *)var_25;
                uVar31 = *var_126;
                var_45 = (char *)var_9(0,
                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
                                            ,5);
                var_10(var_45,uVar31,var_123,var_101,uVar61,var_109,var_127);
                var_128[1] = 1;
              }
            }
            var_109 = var_123;
            var_127 = var_101;
            var_25 = var_17;
            var_128 = var_128 + 2;
          } while (var_124 + var_122 * 2 != var_128);
          var_125(var_124,var_122,8,sort_sections_by_vma);
          var_101 = (type_1 *)*var_124;
          var_17 = (type_10 *)var_101[7];
          var_129 = 1;
          var_123 = (type_23)var_17;
          do {
            var_8 = var_129 * 2;
            if (*(type_23 *)(var_124[var_8] + 0x1c) == var_123) goto LAB_000298a2;
            var_129 = var_129 + 1;
            var_123 = *(type_23 *)(var_124[var_8] + 0x1c);
          } while (var_129 != var_122);
          var_123 = 0;
          pvVar2 = (void *)(((int)&var_17->header - 1U) +
                           ((type_23)var_101[9] >> ((type_2)opb_shift & 0x1f)));
          while (var_127 = var_101, var_130 = pvVar2, var_25 = var_17, var_123 = var_123 + 1,
                var_123 != var_122) {
            var_101 = (type_1 *)var_124[var_123 * 2];
            var_17 = (type_10 *)var_101[7];
            pvVar2 = (void *)(((int)&var_17->header - 1U) +
                             ((type_23)var_101[9] >> ((type_2)opb_shift & 0x1f)));
            if ((var_124[var_123 * 2 + 1] == 0) && ((var_17 <= var_130 || (var_130 < var_25)))) {
              uVar61 = *var_101;
              uVar31 = *var_127;
              var_45 = (char *)var_9(0,
                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
                                          ,5);
              var_10(var_45,uVar61,var_17,pvVar2,uVar31,var_25,var_130);
            }
          }
LAB_000298a2:
          var_60(var_124);
          for (var_63 = lang_memory_region_list; var_132 = require_defined_symbol_list,
              var_63 != (type_32 *)0x0; var_63 = var_63->next) {
            if (var_63->had_full_message != 0) {
              var_45 = (var_63->type_37).name;
              var_8 = var_63->current - (var_63->length + var_63->origin);
              var_47 = (char *)var_131(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                           "%X%P: region `%s\' overflowed by %lu bytes\n",var_8,5);
              var_10(var_47,var_45,var_8);
            }
          }
          goto joined_r0x00028c93;
        }
      }
      var_60(var_124);
      var_132 = require_defined_symbol_list;
    }
  }
joined_r0x00028c93:
  for (; var_132 != (type_11 *)0x0; var_132 = var_132->next) {
    var_8 = var_133(link_info.hash,var_132->name,0,0,1);
    if ((var_8 == 0) || (1 < (type_2)(*(char *)(var_8 + 0xc) - 3U))) {
      var_45 = var_132->name;
      var_47 = (char *)var_9(0,"%X%P: required symbol `%s\' not defined\n",5);
      var_10(var_47,var_45);
    }
  }
  var_8 = var_134;
  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {
    var_8 = 1;
  }
  if (((link_info._0_1_ & 0x43) == 0x42) && (var_134 == 0 && var_135 == 0)) {
    var_45 = (char *)var_9(0,
                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"
                                ,5);
    var_10(var_45);
  }
  if (entry_symbol.name == (char *)0x0) {
    entry_symbol.name = var_26;
    var_8 = 0;
  }
  var_46 = var_133(link_info.hash,entry_symbol.name,0,0,1);
  if ((var_46 != 0) && ((type_2)(*(char *)(var_46 + 0xc) - 3U) < 2)) {
    var_44 = *(int *)(*(int *)(var_46 + 0x14) + 0x3c);
    if (var_44 != 0) {
      var_8 = var_136
                         (link_info.output_bfd,
                          *(int *)(*(int *)(var_46 + 0x14) + 0x38) + *(int *)(var_46 + 0x18) +
                          *(int *)(var_44 + 0x1c));
      if (var_8 != 0) {
        return;
      }
      var_45 = "%F%P: %s: can\'t set start address\n";
      goto LAB_000290ef;
    }
  }
  uVar61 = var_137(entry_symbol.name,&var_68,0);
  if (*(char *)var_68 != '\0') {
    var_46 = var_41(link_info.output_bfd,entry_section);
    var_45 = entry_symbol.name;
    if (var_46 == 0) {
      if (var_8 == 0) {
        return;
      }
      var_45 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_000290ef:
      var_47 = entry_symbol.name;
      var_45 = (char *)var_9(0,var_45,5);
      var_10(var_45,var_47);
      return;
    }
    uVar61 = *(type_1 *)(var_46 + 0x1c);
    if (var_8 != 0) {
      var_47 = (char *)var_9(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5
                                 );
      var_10(var_47,var_45,uVar61);
      uVar61 = *(type_1 *)(var_46 + 0x1c);
    }
  }
  var_8 = var_136(link_info.output_bfd,uVar61);
  if (var_8 != 0) {
    return;
  }
  var_45 = (char *)var_9(0,"%F%P: can\'t set start address\n",5);
  var_10(var_45);
  return;
code_r0x00028eb3:
  var_17 = (var_17->wild_statement).children.head;
  goto joined_r0x0002800a;
LAB_000283a0:
  var_45 = (var_63->type_37).name;
  var_47 = (char *)var_9(0,"%F%P: invalid length for memory region %s\n",5);
  var_10(var_47,var_45);
  var_63 = var_63->next;
  goto joined_r0x00028237;
code_r0x000286ac:
  (*((var_17->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(var_84,&link_info);
  var_84 = var_84->next;
  goto joined_r0x00028684;
code_r0x00028b27:
  var_18 = (var_17->wild_statement).children.head;
  var_45 = (char *)var_9(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  var_10(var_45,var_18,pbVar9);
  var_82 = (type_25 *)var_82->name;
  var_114 = extraout_ECX_00;
  goto joined_r0x00028aeb;
}


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

void MASKED(void)

{
  void *pvVar1;
  byte bVar2;
  byte *pbVar3;
  char cVar4;
  int iVar5;
  undefined4 uVar6;
  size_t sVar7;
  int iVar8;
  int iVar9;
  char *pcVar10;
  char *pcVar11;
  undefined4 uVar12;
  undefined4 *puVar13;
  int *piVar14;
  undefined *puVar15;
  uint uVar16;
  byte *pbVar17;
  undefined4 uVar18;
  byte bVar19;
  undefined4 *puVar20;
  uint uVar21;
  uint uVar22;
  int *piVar23;
  int *piVar24;
  int iVar25;
  int *piVar26;
  int *piVar27;
  int iVar28;
  int *piVar29;
  byte *pbVar30;
  bool bVar31;
  bool bVar32;
  byte bVar33;
  int *local_50;
  void *local_4c;
  undefined4 *local_48;
  uint local_44;
  int local_40;
  char *local_20 [3];
  undefined4 uStack_14;
  
  bVar33 = 0;
  uStack_14 = 0x27e19;
  if (DAT_00091ca0 != 0) {
    FUN_0001e950();
  }
  DAT_00091850 = DAT_00091d88;
  FUN_000216f0(FUN_00024300,DAT_00091848);
  FUN_0001f200();
  FUN_00030060();
  for (puVar13 = DAT_00091794; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
    FUN_0001e720();
  }
  iVar5 = bfd_section_already_linked_table_init();
  if (iVar5 == 0) {
    uVar6 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_00031760(uVar6);
  }
  DAT_00091780 = DAT_00091780 + 1;
  DAT_00091850 = DAT_00091d88;
  FUN_00025a30();
  piVar27 = DAT_00091bc8;
  piVar23 = DAT_00091bc4;
  piVar26 = DAT_000917a0;
  piVar24 = DAT_0009179c;
  if ((DAT_00091c20._1_1_ & 2) != 0) {
    iVar5 = *(int *)PTR_DAT_00091358;
    piVar29 = *(int **)(PTR_DAT_00091358 + 4);
    iVar9 = FUN_000351f0();
    if (iVar9 != 0) {
      uVar6 = FUN_00034b60();
      uVar12 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_00031760(uVar12,uVar6);
    }
    FUN_00025a30();
    puVar15 = PTR_DAT_00091358;
    if (*(int *)PTR_DAT_00091358 != iVar5) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar14 = *(int **)(puVar15 + 4);
    iVar5 = *piVar29;
    *(int **)(puVar15 + 4) = piVar29;
    *piVar29 = 0;
    if (DAT_0009179c != piVar24) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar29 = DAT_000917a0;
    piVar24 = (int *)*piVar26;
    DAT_000917a0 = piVar26;
    *piVar26 = 0;
    if (DAT_00091bc4 != piVar23) {
      FUN_000317b0("../../ld/ldlang.c",0x1baf);
    }
    piVar23 = DAT_00091bc8;
    iVar9 = *piVar27;
    DAT_00091bc8 = piVar27;
    *piVar27 = 0;
    piVar26 = DAT_0009179c;
    piVar27 = DAT_00091bc4;
    if (iVar5 != 0) {
      for (; DAT_000917e0 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {
        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {
          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029491;
          break;
        }
        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x88) == 0)) {
          DAT_000917e0 = piVar26;
        }
        piVar27 = DAT_000917e0;
      }
      piVar26 = DAT_000917e0;
      if (DAT_000917e0 == (int *)0x0) {
        FUN_000317b0("../../ld/ldlang.c",0x1c32);
        piVar26 = DAT_000917e0;
      }
LAB_00029491:
      DAT_000917e0 = piVar26;
      piVar26 = DAT_000917e0;
      puVar15 = PTR_DAT_00091358;
      *piVar14 = *DAT_000917e0;
      *piVar26 = iVar5;
      if (piVar26 == *(int **)(puVar15 + 4)) {
        *(int **)(puVar15 + 4) = piVar14;
      }
      *piVar23 = piVar26[7];
      piVar26[7] = iVar9;
      piVar27 = DAT_000917a0;
      if (DAT_00091bc8 == piVar26 + 7) {
        DAT_00091bc8 = piVar23;
      }
      if (piVar26[2] == 0) {
        *piVar29 = (int)DAT_0009179c;
        DAT_0009179c = piVar24;
        if ((int **)piVar27 != &DAT_0009179c) {
          piVar29 = DAT_000917a0;
        }
      }
      else {
        *piVar29 = piVar26[6];
        piVar26[6] = (int)piVar24;
        if (piVar27 != piVar26 + 6) {
          piVar29 = DAT_000917a0;
        }
      }
      DAT_000917a0 = piVar29;
      piVar26 = DAT_000917a0;
      piVar24 = DAT_0009179c;
      DAT_00091780 = DAT_00091780 + 1;
      FUN_00025a30();
      if (DAT_0009179c != piVar24) {
        FUN_000317b0("../../ld/ldlang.c",0x1baf);
      }
      iVar5 = *piVar26;
      DAT_000917a0 = piVar26;
      *piVar26 = 0;
      while (iVar5 != 0) {
        iVar9 = *(int *)(*(int *)(iVar5 + 0x10) + 0x88);
        iVar8 = *(int *)(iVar5 + 0x10);
        if (iVar9 != 0) {
          iVar8 = iVar9;
        }
        piVar24 = DAT_0009179c;
        if (DAT_00091bc4 != (int *)0x0) {
          piVar23 = (int *)0x0;
          local_50 = (int *)0x0;
          piVar26 = DAT_00091bc4;
          do {
            while (piVar26[4] != iVar8) {
              if ((piVar26[4] != 0) && (piVar26[6] != 0)) {
                piVar23 = piVar26;
              }
              piVar26 = (int *)piVar26[7];
              if (piVar26 == (int *)0x0) goto LAB_000295b0;
            }
            iVar25 = piVar26[6];
            if (iVar25 != 0) {
              piVar24 = (int *)(iVar25 + 0x18);
              iVar8 = *(int *)(iVar25 + 0x18);
              goto LAB_000295f1;
            }
            piVar26 = (int *)piVar26[7];
            local_50 = piVar23;
          } while (piVar26 != (int *)0x0);
LAB_000295b0:
          if (local_50 != (int *)0x0) {
            piVar24 = local_50;
          }
        }
        piVar24 = piVar24 + 6;
        for (iVar8 = *piVar24; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0x18)) {
          if (((*(byte *)(iVar8 + 0x25) & 0x40) == 0) &&
             (*(int *)(*(int *)(iVar8 + 0x10) + 0x88) == 0)) {
            iVar8 = *piVar24;
            break;
          }
          piVar24 = (int *)(iVar8 + 0x18);
        }
LAB_000295f1:
        local_50 = (int *)(iVar5 + 0x18);
        if (iVar9 == 0) {
          *piVar24 = iVar5;
          iVar9 = *(int *)(iVar5 + 0x18);
          *(int *)(iVar5 + 0x18) = iVar8;
          iVar5 = iVar9;
        }
        else {
          iVar25 = *(int *)(iVar5 + 0x18);
          if (iVar25 != 0) {
            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);
            while (iVar9 == iVar28) {
              local_50 = (int *)(iVar25 + 0x18);
              iVar25 = *(int *)(iVar25 + 0x18);
              if (iVar25 == 0) break;
              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x88);
            }
          }
          *piVar24 = iVar5;
          iVar5 = *local_50;
          *local_50 = iVar8;
          if (*(int *)(iVar9 + 0xa0) != 0) {
            *(int **)(*(int *)(iVar9 + 0xa0) + 0x18) = local_50 + -6;
          }
        }
      }
    }
  }
  if (DAT_00091c64 != (undefined4 *)0x0) {
    FUN_000317b0("../../ld/ldlang.c",0x1c67);
  }
  DAT_00091c64 = &DAT_00091794;
  if (DAT_00091798 == (undefined *)0x0) {
    DAT_00091c64 = DAT_00091794;
    if (PTR_s_start_00091360 != (undefined *)0x0) {
      FUN_000214f0();
    }
  }
  if (DAT_00091c6c != 0) {
    FUN_000214f0();
  }
  if (DAT_00091c70 != 0) {
    FUN_000214f0();
  }
  FUN_0002ff70();
  if ((DAT_00091d70 != 0) && (DAT_00091810 != (undefined4 *)0x0)) {
    uVar6 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);
    FUN_000317f0(uVar6);
    for (puVar13 = DAT_00091810; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
      FUN_000317f0(&DAT_0004be86,puVar13[1]);
      sVar7 = strlen((char *)puVar13[1]);
      if (0x1c < sVar7) {
        FUN_00030840();
        sVar7 = 0;
      }
      do {
        FUN_00030810();
        sVar7 = sVar7 + 1;
      } while (sVar7 != 0x1e);
      if (puVar13[2] != 0) {
        FUN_000317f0(&DAT_0004c110,puVar13[2]);
      }
      FUN_000317f0("(%pT)\n",puVar13[3]);
    }
  }
  bfd_section_already_linked_table_free();
  piVar24 = DAT_0009179c;
joined_r0x0002800a:
  if (piVar24 != (int *)0x0) {
    do {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        iVar5 = piVar24[4];
        iVar8 = bfd_arch_get_compatible(iVar5,DAT_00091c50,DAT_00091cdc);
        iVar9 = DAT_00091c50;
        if ((((byte)DAT_00091c20 & 3) == 2) || ((DAT_00091c20._3_1_ & 8) != 0)) {
          if (iVar8 != 0) {
            puVar13 = *(undefined4 **)(iVar5 + 4);
            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);
            if ((puVar13[1] != puVar20[1]) && ((*(byte *)(iVar5 + 0x28) & 0x20) != 0))
            goto LAB_000282ef;
            goto LAB_00028063;
          }
          if ((*(byte *)(iVar5 + 0x28) & 0x20) != 0) {
            puVar13 = *(undefined4 **)(iVar5 + 4);
            puVar20 = *(undefined4 **)(DAT_00091c50 + 4);
LAB_000282ef:
            uVar6 = *puVar20;
            uVar12 = *puVar13;
            uVar18 = dcgettext(0,
                               "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                               ,5);
            FUN_00031760(uVar18,uVar12,iVar5,uVar6,iVar9);
            goto joined_r0x0002832b;
          }
        }
        else {
joined_r0x0002832b:
          if (iVar8 != 0) {
LAB_00028063:
            if (*(int *)(iVar5 + 0x68) == 0) goto LAB_000280c0;
            uVar6 = 0;
            if (DAT_00091cd0 == 0) {
              uVar6 = bfd_set_error_handler(FUN_0001ded0);
            }
            iVar9 = (**(code **)(*(int *)(DAT_00091c50 + 4) + 0xac))(iVar5,&DAT_00091c20);
            if (iVar9 == 0) {
              if (DAT_00091cd0 != 0) {
                uVar12 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
                FUN_00031760(uVar12,iVar5);
                goto LAB_00028ea4;
              }
            }
            else {
LAB_00028ea4:
              if (DAT_00091cd0 != 0) goto code_r0x00028eb3;
            }
            bfd_set_error_handler(uVar6);
            goto LAB_000280c0;
          }
        }
        if (DAT_00091cd0 == 0) goto LAB_000280c0;
        uVar6 = bfd_printable_name(DAT_00091c50);
        uVar12 = bfd_printable_name(iVar5);
        uVar18 = dcgettext(0,
                           "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                           ,5);
        FUN_00031760(uVar18,uVar12,iVar5,uVar6);
        piVar24 = (int *)piVar24[6];
      }
      else {
LAB_000280c0:
        piVar24 = (int *)piVar24[6];
      }
      if (piVar24 == (int *)0x0) break;
    } while( true );
  }
  if (DAT_00091d14 != 0) {
    uVar6 = 0;
    for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      while (iVar5 = bfd_get_section_by_name(piVar24[4],".exports"), iVar5 != 0) {
        iVar9 = *(int *)(iVar5 + 0x24);
        pcVar10 = (char *)xmalloc(iVar9);
        iVar8 = bfd_get_section_contents(piVar24[4],iVar5,pcVar10,0,0,iVar9);
        if (iVar8 == 0) {
          uVar12 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
          FUN_00031760(uVar12,iVar5);
        }
        pcVar11 = pcVar10 + iVar9;
        for (; pcVar10 < pcVar11; pcVar10 = pcVar10 + sVar7 + 1) {
          uVar6 = FUN_00027750(uVar6,pcVar10,0,0);
          sVar7 = strlen(pcVar10);
        }
        piVar24 = (int *)piVar24[6];
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 0x208000;
        if (piVar24 == (int *)0x0) goto LAB_000281aa;
      }
    }
LAB_000281aa:
    uVar12 = FUN_00027750(0,&DAT_0004bfe8,0,0);
    iVar5 = xcalloc(1,0x3c);
    *(undefined4 *)(iVar5 + 0xc) = uVar6;
    *(undefined4 *)(iVar5 + 0x1c) = uVar12;
    *(code **)(iVar5 + 0x38) = FUN_0001eb80;
    *(undefined4 *)(iVar5 + 0x30) = 0xffffffff;
    FUN_000279d0(DAT_00091d14,iVar5,0);
  }
  FUN_0002ad40();
  puVar15 = PTR__sch_istable_00090fa8;
  if (DAT_00091d2c != 0) {
    local_40 = DAT_00091c58;
    cVar4 = *(char *)(*(int *)(DAT_00091c50 + 4) + 0x18);
    if (DAT_00091c58 != 0) {
      do {
        for (puVar13 = *(undefined4 **)(local_40 + 0x60); puVar13 != (undefined4 *)0x0;
            puVar13 = (undefined4 *)puVar13[3]) {
          while( true ) {
            pbVar3 = (byte *)*puVar13;
            bVar19 = *pbVar3;
            if (bVar19 == 0) break;
            bVar2 = puVar15[(uint)bVar19 * 2];
            pbVar17 = pbVar3;
            while (((bVar2 & 0x8c) != 0 || (bVar19 == 0x5f))) {
              pbVar17 = pbVar17 + 1;
              bVar19 = *pbVar17;
              if (bVar19 == 0) goto LAB_000299d0;
              bVar2 = puVar15[(uint)bVar19 * 2];
            }
            puVar13 = (undefined4 *)puVar13[3];
            if (puVar13 == (undefined4 *)0x0) goto LAB_000299b0;
          }
LAB_000299d0:
          sVar7 = strlen((char *)pbVar3);
          pcVar10 = (char *)xmalloc(sVar7 + 10);
          *pcVar10 = cVar4;
          sprintf(pcVar10 + (cVar4 != '\0'),"__start_%s",pbVar3);
          FUN_0001eaf0();
          pcVar10[1] = cVar4;
          builtin_strncpy(pcVar10 + (2 - (uint)(cVar4 == '\0')),"__stop",6);
          FUN_0001eaf0();
          free(pcVar10);
        }
LAB_000299b0:
        local_40 = *(int *)(local_40 + 0x98);
      } while (local_40 != 0);
    }
  }
  FUN_00024940(1);
  puVar13 = DAT_000917ec;
joined_r0x00028237:
  if (puVar13 != (undefined4 *)0x0) {
    do {
      if (puVar13[3] != 0) {
        FUN_0002f4f0(puVar13[3]);
        uVar6 = DAT_00091db4;
        if (DAT_00091dc0 == 0) {
          uVar6 = *puVar13;
          uVar12 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_00031760(uVar12,uVar6);
        }
        else {
          puVar13[4] = DAT_00091db4;
          puVar13[7] = uVar6;
        }
      }
      if (puVar13[6] != 0) {
        FUN_0002f4f0(puVar13[6]);
        if (DAT_00091dc0 == 0) goto LAB_000283a0;
        puVar13[5] = DAT_00091db4;
      }
      puVar13 = (undefined4 *)puVar13[2];
      if (puVar13 == (undefined4 *)0x0) break;
    } while( true );
  }
  DAT_00091da0 = 0;
  if (((DAT_00091c27 & 0x20) == 0) && ((((byte)DAT_00091c20 & 3) != 2 || (DAT_00091cc0 != 0)))) {
    if (DAT_00091d4c == 0) {
      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,0);
    }
    else {
      if (DAT_00091d4c == 2) {
        local_20[0] = (char *)0x4;
        do {
          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
          local_20[0] = local_20[0] + -1;
        } while (local_20[0] != (char *)0x0);
        local_20[0] = (char *)0x0;
      }
      else {
        local_20[0] = (char *)0x0;
        do {
          bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
          local_20[0] = local_20[0] + 1;
        } while (local_20[0] < (char *)0x5);
        local_20[0] = (char *)0xffffffff;
      }
      bfd_link_hash_traverse(DAT_00091c3c,FUN_00020320,local_20);
    }
  }
  FUN_00025560();
  bVar19 = (byte)DAT_00091c20;
  piVar24 = DAT_0009179c;
  if (((byte)DAT_00091c20 & 3) == 2) {
    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        for (iVar5 = *(int *)(piVar24[4] + 0x60); iVar5 != 0; iVar5 = *(int *)(iVar5 + 0xc)) {
          if ((*(uint *)(iVar5 + 0x14) & 0x2000) == 0) {
            *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar19 & 0x40) != 0) {
    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x184))(DAT_00091c50,&DAT_00091c20);
  }
  iVar5 = DAT_00091c58;
  if ((DAT_00091c26 & 0x20) != 0) {
    for (; iVar5 != 0; iVar5 = *(int *)(iVar5 + 0x98)) {
      iVar9 = bfd_link_check_relocs(iVar5,&DAT_00091c20);
      if (iVar9 == 0) {
        DAT_00091d24 = 0;
      }
    }
  }
  FUN_0002ff90();
  piVar26 = (int *)0x0;
  FUN_0001e040();
  DAT_00091780 = DAT_00091780 + 1;
  FUN_00025680();
  piVar23 = (int *)0x0;
  piVar24 = (int *)*DAT_00091be0;
  if (piVar24 == (int *)0x0) {
LAB_00028564:
    if (piVar26 != (int *)0x0) {
      piVar26[0x12] = -2 - piVar26[0x12];
      while ((piVar23 != piVar26 && (piVar26 = (int *)piVar26[4], piVar26 != (int *)0x0))) {
        piVar26[0x12] = -2 - piVar26[0x12];
      }
    }
  }
  else {
    piVar27 = (int *)0x0;
    piVar29 = DAT_00091be0;
    while (piVar14 = piVar24, piVar24[1] == 0) {
      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {
        FUN_000317b0("../../ld/ldlang.c",0xea0);
        piVar14 = (int *)*piVar29;
      }
      piVar24[0x12] = -2 - piVar24[0x12];
      piVar23 = piVar24;
      piVar26 = piVar24;
      if (piVar27 != (int *)0x0) goto LAB_0002855a;
LAB_0002855c:
      piVar24 = (int *)*piVar14;
      piVar27 = piVar26;
      piVar29 = piVar14;
      if (piVar24 == (int *)0x0) goto LAB_00028564;
    }
    if (piVar24[1] != 0xe) {
LAB_0002855a:
      piVar26 = piVar27;
      goto LAB_0002855c;
    }
    iVar5 = FUN_00022cf0(piVar24[2],0,0);
    if (iVar5 != 0) {
      if (piVar24[3] != 0) {
        do {
          iVar5 = *(int *)(iVar5 + 0x14);
          if (iVar5 == 0) goto LAB_00028636;
        } while (*(int *)(iVar5 + 0x48) < 0);
      }
      if (piVar23 != (int *)0x0) {
        iVar9 = piVar27[5];
        iVar8 = piVar23[4];
        *(int *)(iVar9 + 0x10) = iVar8;
        if (iVar8 == 0) {
          DAT_00091be4 = (int *)(iVar9 + 0x10);
          piVar23[4] = *(int *)(iVar5 + 0x10);
          iVar9 = *(int *)(iVar5 + 0x10);
          if (iVar9 != 0) goto LAB_00028f0d;
LAB_00029143:
          DAT_00091be4 = piVar23 + 4;
        }
        else {
          *(int *)(iVar8 + 0x14) = iVar9;
          piVar23[4] = *(int *)(iVar5 + 0x10);
          iVar9 = *(int *)(iVar5 + 0x10);
          if (iVar9 == 0) goto LAB_00029143;
LAB_00028f0d:
          *(int **)(iVar9 + 0x14) = piVar23;
        }
        piVar27[5] = iVar5;
        iVar8 = 0;
        iVar9 = 0;
        *(int **)(iVar5 + 0x10) = piVar27;
        do {
          piVar27[0x12] = -2 - piVar27[0x12];
          iVar25 = piVar27[7];
          if (((iVar25 != 0) && (*(int *)(iVar25 + 0x94) != 0)) && (iVar8 = iVar25, iVar9 == 0)) {
            iVar9 = iVar25;
          }
        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));
        piVar27 = (int *)0x0;
        if (iVar8 != 0) {
          iVar25 = *(int *)(iVar5 + 0x1c);
          if (iVar25 == 0) {
            piVar27 = *(int **)(iVar5 + 0x14);
            if (piVar27 != (int *)0x0) {
              do {
                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&
                   (*(int *)(iVar25 + 0x94) != 0)) goto LAB_00028f6a;
                piVar27 = (int *)piVar27[5];
              } while (piVar27 != (int *)0x0);
              piVar27 = (int *)0x0;
            }
          }
          else {
LAB_00028f6a:
            piVar27 = (int *)0x0;
            if (iVar25 != iVar8) {
              iVar5 = *(int *)(iVar9 + 0x10);
              iVar28 = *(int *)(iVar8 + 0xc);
              if (iVar5 == 0) {
                *(int *)(DAT_00091c50 + 0x60) = iVar28;
              }
              else {
                *(int *)(iVar5 + 0xc) = iVar28;
                iVar28 = *(int *)(iVar8 + 0xc);
              }
              if (iVar28 == 0) {
                *(int *)(DAT_00091c50 + 100) = iVar5;
              }
              else {
                *(int *)(iVar28 + 0x10) = iVar5;
              }
              iVar5 = *(int *)(iVar25 + 0xc);
              *(int *)(iVar8 + 0xc) = iVar5;
              if (iVar5 == 0) {
                *(int *)(DAT_00091c50 + 100) = iVar8;
              }
              else {
                *(int *)(iVar5 + 0x10) = iVar8;
              }
              *(int *)(iVar9 + 0x10) = iVar25;
              piVar27 = (int *)0x0;
              *(int *)(iVar25 + 0xc) = iVar9;
            }
          }
        }
      }
      piVar24 = (int *)FUN_0001dd70();
      iVar5 = *DAT_00091be0;
      *DAT_00091be0 = *(int *)*piVar29;
      iVar9 = *piVar24;
      *piVar29 = iVar9;
      if (iVar9 == 0) {
        DAT_0009184c = piVar29;
      }
      *piVar24 = iVar5;
      piVar23 = (int *)0x0;
      piVar26 = piVar27;
      piVar14 = DAT_00091be0;
      goto LAB_0002855c;
    }
LAB_00028636:
    iVar5 = piVar24[2];
    uVar6 = dcgettext(0,"%F%P: %s not found for insert\n",5);
    FUN_00031760(uVar6,iVar5);
  }
  puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;
  for (piVar24 = DAT_0009179c; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
    puVar13 = *(undefined4 **)(piVar24[4] + 0x60);
joined_r0x00028684:
    if (puVar13 != (undefined4 *)0x0) {
      do {
        if (puVar13[0xf] == 0) {
          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000286ac;
          iVar5 = FUN_0001eff0();
          bVar31 = false;
          bVar32 = iVar5 == 0;
          if (bVar32) {
            pbVar3 = (byte *)*puVar13;
            iVar5 = 7;
            pbVar17 = pbVar3;
            pbVar30 = (byte *)"COMMON";
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar31 = *pbVar17 < *pbVar30;
              bVar32 = *pbVar17 == *pbVar30;
              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;
              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;
            } while (bVar32);
            if ((!bVar31 && !bVar32) == bVar31) {
              if ((((byte)DAT_00091c20 & 3) != 2) || (DAT_00091cc0 != 0)) {
                if (DAT_0009185c == 0) {
                  DAT_0009185c = FUN_00022cf0(".bss",0,1);
                }
                FUN_00023ba0(DAT_0009185c + 8,puVar13,0,DAT_0009185c);
              }
            }
            else if (DAT_00091d3c == 1) {
              iVar5 = FUN_00022cf0("/DISCARD/",0,1);
              if ((*(int *)(iVar5 + 0x2c) == 0) &&
                 ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {
                uVar6 = FUN_0002f3c0(0);
                *(undefined4 *)(iVar5 + 0x2c) = uVar6;
              }
              FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);
            }
            else {
              if (DAT_00091d3c == 3) {
                uVar6 = puVar13[0x25];
                uVar12 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_00031760(uVar12,puVar13,uVar6);
              }
              if ((DAT_00091d58 == 0) && (iVar5 = FUN_00020cd0(), iVar5 == 0)) {
                uVar6 = 0;
              }
              else {
                uVar6 = 0x17e;
              }
              iVar5 = FUN_000300e0(puVar13,pbVar3,uVar6);
              if (iVar5 == 0) {
                iVar5 = FUN_00022cf0(pbVar3,uVar6,1);
                if ((*(int *)(iVar5 + 0x2c) == 0) &&
                   ((((byte)DAT_00091c20 & 3) == 2 || ((*(byte *)(puVar13 + 5) & 3) == 0)))) {
                  uVar6 = FUN_0002f3c0(0);
                  *(undefined4 *)(iVar5 + 0x2c) = uVar6;
                }
                FUN_00023ba0(iVar5 + 8,puVar13,0,iVar5);
              }
              if (DAT_00091d3c == 2) {
                uVar6 = *(undefined4 *)(iVar5 + 0x18);
                uVar12 = puVar13[0x25];
                uVar18 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_00031760(uVar18,puVar13,uVar12,uVar6);
              }
            }
          }
          else {
            puVar13[0xf] = puVar15;
          }
        }
        puVar13 = (undefined4 *)puVar13[3];
        if (puVar13 == (undefined4 *)0x0) break;
      } while( true );
    }
  }
  bVar19 = (byte)DAT_00091c20 & 3;
  piVar24 = DAT_000917cc;
  piVar26 = DAT_00091be0;
  iVar5 = DAT_00091c50;
  if (bVar19 != 2) {
    (**(code **)(*(int *)(DAT_00091c50 + 4) + 0x18c))(DAT_00091c50,&DAT_00091c20);
    iVar5 = bfd_get_section_by_name(DAT_00091c50,".text");
    if (iVar5 == 0) {
      bVar19 = (byte)DAT_00091c20 & 3;
      piVar24 = DAT_000917cc;
      piVar26 = DAT_00091be0;
      iVar5 = DAT_00091c50;
    }
    else {
      bVar19 = (byte)DAT_00091c20 & 3;
      if (DAT_00091d50 == 0) {
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) & 0xfffffff7;
        piVar24 = DAT_000917cc;
        piVar26 = DAT_00091be0;
        iVar5 = DAT_00091c50;
      }
      else {
        *(uint *)(iVar5 + 0x14) = *(uint *)(iVar5 + 0x14) | 8;
        piVar24 = DAT_000917cc;
        piVar26 = DAT_00091be0;
        iVar5 = DAT_00091c50;
      }
    }
  }
  for (; DAT_000917cc = piVar24, DAT_00091c50 = iVar5, piVar26 != (int *)0x0;
      piVar26 = (int *)piVar26[4]) {
    iVar5 = piVar26[5];
    if ((((iVar5 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&
       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar5 + 0x20))))) {
      piVar26[9] = *(int *)(iVar5 + 0x24);
    }
    piVar24 = DAT_000917cc;
    iVar5 = DAT_00091c50;
  }
  if ((DAT_00091d2c != 0) && (DAT_000917c8 != 0)) {
    piVar26 = piVar24 + DAT_000917c8;
    do {
      while (iVar9 = *piVar24, (*(byte *)(iVar9 + 0xd) & 8) == 0) {
        puVar13 = (undefined4 *)(*(undefined4 **)(iVar9 + 0x14))[0xf];
        if (((puVar13 == (undefined4 *)0x0) || (puVar13[0x25] != iVar5)) ||
           (iVar8 = strcmp((char *)**(undefined4 **)(iVar9 + 0x14),(char *)*puVar13), iVar8 != 0)) {
          *(undefined1 *)(iVar9 + 0xc) = 1;
          *(undefined4 *)(iVar9 + 0x14) = 0;
          break;
        }
        piVar24 = piVar24 + 1;
        if (piVar24 == piVar26) goto LAB_000288f7;
      }
      piVar24 = piVar24 + 1;
    } while (piVar24 != piVar26);
  }
LAB_000288f7:
  if (bVar19 != 2) {
    for (puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60); puVar13 != (undefined4 *)0x0;
        puVar13 = (undefined4 *)puVar13[3]) {
      pcVar10 = (char *)*puVar13;
      sVar7 = strlen(pcVar10);
      pcVar11 = (char *)xmalloc(sVar7 + 10);
      sprintf(pcVar11,".startof.%s",pcVar10);
      FUN_0001eaf0();
      builtin_strncpy(pcVar11 + 1,".size",5);
      FUN_0001eaf0();
      free(pcVar11);
    }
  }
  FUN_0002ffd0();
  piVar24 = (int *)0x0;
  local_4c = (void *)xmalloc(0x28);
  local_44 = 10;
  for (puVar13 = DAT_00091bd8; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)*puVar13) {
    local_50 = (int *)0x0;
    for (piVar26 = DAT_00091be0; piVar26 != (int *)0x0; piVar26 = (int *)piVar26[4]) {
      if (-1 < piVar26[0x12]) {
        piVar23 = (int *)piVar26[0xe];
        if (piVar23 == (int *)0x0) {
          if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&
             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&
              (piVar27 = piVar26, piVar23 = piVar24, puVar13[2] != 3)))) {
            while( true ) {
              piVar24 = piVar23;
              if (piVar23 != (int *)0x0) goto LAB_000289ba;
              piVar27 = (int *)piVar27[4];
              if (piVar27 == (int *)0x0) break;
              piVar23 = (int *)piVar27[0xe];
            }
            piVar24 = (int *)0x0;
            uVar6 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_00031760(uVar6);
          }
        }
        else {
          piVar24 = piVar23;
          piVar27 = (int *)piVar26[7];
          while (piVar27 != (int *)0x0) {
LAB_000289ba:
            iVar5 = strcmp((char *)piVar23[1],(char *)puVar13[1]);
            uVar21 = local_44;
            if (iVar5 == 0) {
              if (local_44 <= local_50) {
                uVar21 = local_44 * 2;
                local_4c = (void *)xrealloc(local_4c,local_44 << 3);
              }
              *(int *)((int)local_4c + (int)local_50 * 4) = piVar26[7];
              local_50 = (int *)((int)local_50 + 1);
              piVar23[2] = 1;
            }
            piVar23 = (int *)*piVar23;
            local_44 = uVar21;
            piVar27 = piVar23;
          }
        }
      }
    }
    uVar6 = 0;
    if (puVar13[6] != 0) {
      uVar6 = FUN_0002fba0(puVar13[6],0,"phdr flags");
    }
    iVar5 = puVar13[5];
    uVar12 = 0;
    if (iVar5 != 0) {
      uVar12 = FUN_0002fba0(iVar5,0,"phdr load address");
      iVar5 = puVar13[5];
    }
    iVar5 = bfd_record_phdr(DAT_00091c50,puVar13[2],puVar13[6] != 0,uVar6,iVar5 != 0,uVar12,
                            puVar13[3],puVar13[4],local_50,local_4c);
    if (iVar5 == 0) {
      uVar6 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_00031760(uVar6);
    }
  }
  free(local_4c);
  for (piVar24 = DAT_00091be0; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {
    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {
      piVar26 = (int *)piVar24[0xe];
joined_r0x00028aeb:
      if (piVar26 != (int *)0x0) {
        do {
          bVar31 = false;
          bVar32 = piVar26[2] == 0;
          if (bVar32) {
            pbVar3 = (byte *)piVar26[1];
            iVar5 = 5;
            pbVar17 = pbVar3;
            pbVar30 = (byte *)0x3d35d;
            do {
              if (iVar5 == 0) break;
              iVar5 = iVar5 + -1;
              bVar31 = *pbVar17 < *pbVar30;
              bVar32 = *pbVar17 == *pbVar30;
              pbVar17 = pbVar17 + (uint)bVar33 * -2 + 1;
              pbVar30 = pbVar30 + (uint)bVar33 * -2 + 1;
            } while (bVar32);
            if ((!bVar31 && !bVar32) != bVar31) goto code_r0x00028b27;
          }
          piVar26 = (int *)*piVar26;
          if (piVar26 == (int *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_00091c20._3_1_ & 0x10) != 0) && (((byte)DAT_00091c20 & 3) != 2)) {
    local_20[0] = (char *)0x0;
    FUN_00025980();
    if (local_20[0] == (char *)0x0) {
      DAT_00091c20._3_1_ = DAT_00091c20._3_1_ & 0xef;
    }
  }
  FUN_00026140(0,1 < DAT_00091c34);
  FUN_0002ffb0();
  iVar5 = DAT_00091c50;
  uVar6 = DAT_0009180c;
  if (DAT_000917c8 != 0) {
    piVar24 = DAT_000917cc + DAT_000917c8;
    puVar15 = PTR__bfd_std_section_00090fc4 + 0x150;
    piVar26 = DAT_000917cc;
    do {
      while (iVar9 = *piVar26, (*(ushort *)(iVar9 + 0xc) & 0x8ff) == 3) {
        pcVar10 = *(char **)(iVar9 + 4);
        local_4c._0_1_ = (byte)uVar6;
        if (*pcVar10 != '.') {
          cVar4 = *(char *)(*(int *)(iVar5 + 4) + 0x18);
          iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);
          *(int *)(iVar9 + 0x14) = iVar8;
          if (pcVar10[(cVar4 != '\0') + 4] == 'o') {
            *(uint *)(iVar9 + 0x18) = *(uint *)(iVar8 + 0x24) >> ((byte)local_4c & 0x1f);
          }
          break;
        }
        if (pcVar10[2] != 'i') break;
        piVar26 = piVar26 + 1;
        *(uint *)(iVar9 + 0x18) =
             *(uint *)(*(int *)(iVar9 + 0x14) + 0x24) >> ((byte)local_4c & 0x1f);
        *(undefined **)(iVar9 + 0x14) = puVar15;
        if (piVar24 == piVar26) goto LAB_00028c60;
      }
      piVar26 = piVar26 + 1;
    } while (piVar24 != piVar26);
  }
LAB_00028c60:
  FUN_00024940(4);
  FUN_00030010();
  FUN_0002fea0();
  puVar13 = DAT_000917dc;
  if (DAT_00091cd8 != '\0') {
    cVar4 = bfd_arch_bits_per_address(DAT_00091c50);
    puVar13 = *(undefined4 **)(DAT_00091c50 + 0x60);
    uVar21 = (1 << (cVar4 - 1U & 0x1f)) * 2 - 1;
    if (puVar13 != (undefined4 *)0x0) {
      do {
        if ((*(byte *)(puVar13 + 5) & 1) != 0) {
          uVar22 = puVar13[7] + puVar13[9] & uVar21;
          if ((uVar22 == 0) || ((puVar13[7] & uVar21) <= uVar22)) {
            uVar22 = puVar13[9] + puVar13[8] & uVar21;
            if ((uVar22 == 0) || ((puVar13[8] & uVar21) <= uVar22)) goto LAB_000296b0;
            uVar6 = *puVar13;
            pcVar10 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar6 = *puVar13;
            pcVar10 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar12 = dcgettext(0,pcVar10,5);
          FUN_00031760(uVar12,uVar6);
        }
LAB_000296b0:
        puVar13 = (undefined4 *)puVar13[3];
      } while (puVar13 != (undefined4 *)0x0);
    }
    puVar13 = DAT_000917dc;
    if (1 < *(uint *)(DAT_00091c50 + 0x68)) {
      piVar24 = (int *)xmalloc(*(uint *)(DAT_00091c50 + 0x68) << 3);
      uVar21 = 0;
      iVar5 = *(int *)(DAT_00091c50 + 0x60);
      if (iVar5 != 0) {
        do {
          if ((((*(uint *)(iVar5 + 0x14) & 1) != 0) && ((*(uint *)(iVar5 + 0x14) & 0x402) != 0x400))
             && (*(int *)(iVar5 + 0x24) != 0)) {
            iVar9 = uVar21 * 2;
            uVar21 = uVar21 + 1;
            piVar24[iVar9] = iVar5;
            (piVar24 + iVar9)[1] = 0;
          }
          iVar5 = *(int *)(iVar5 + 0xc);
        } while (iVar5 != 0);
        if (1 < uVar21) {
          qsort(piVar24,uVar21,8,FUN_0001de50);
          local_44 = 0;
          local_48 = (undefined4 *)0x0;
          local_50 = (undefined4 *)0x0;
          piVar26 = piVar24;
          do {
            puVar20 = (undefined4 *)*piVar26;
            piVar23 = local_50;
            puVar13 = local_48;
            uVar22 = local_44;
            if ((*(byte *)(puVar20 + 5) & 2) != 0) {
              uVar22 = puVar20[8];
              puVar13 = (undefined4 *)
                        ((uVar22 - 1) + ((uint)puVar20[9] >> ((byte)DAT_0009180c & 0x1f)));
              piVar23 = puVar20;
              if ((local_50 != (undefined4 *)0x0) && ((uVar22 <= local_48 || (local_48 < local_44)))
                 ) {
                uVar6 = *local_50;
                uVar12 = *puVar20;
                uVar18 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_00031760(uVar18,uVar12,uVar22,puVar13,uVar6,local_44,local_48);
                piVar26[1] = 1;
              }
            }
            local_44 = uVar22;
            local_48 = puVar13;
            local_50 = piVar23;
            piVar26 = piVar26 + 2;
          } while (piVar24 + uVar21 * 2 != piVar26);
          qsort(piVar24,uVar21,8,FUN_0001de90);
          puVar13 = (undefined4 *)*piVar24;
          piVar26 = (int *)puVar13[7];
          uVar16 = 1;
          uVar22 = (uint)piVar26;
          do {
            iVar5 = uVar16 * 2;
            if (*(uint *)(piVar24[iVar5] + 0x1c) == uVar22) goto LAB_000298a2;
            uVar16 = uVar16 + 1;
            uVar22 = *(uint *)(piVar24[iVar5] + 0x1c);
          } while (uVar16 != uVar21);
          uVar22 = 0;
          pvVar1 = (void *)(((int)piVar26 - 1U) + ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)))
          ;
          while (local_48 = puVar13, local_4c = pvVar1, local_50 = piVar26, uVar22 = uVar22 + 1,
                uVar22 != uVar21) {
            puVar13 = (undefined4 *)piVar24[uVar22 * 2];
            piVar26 = (int *)puVar13[7];
            pvVar1 = (void *)(((int)piVar26 - 1U) +
                             ((uint)puVar13[9] >> ((byte)DAT_0009180c & 0x1f)));
            if ((piVar24[uVar22 * 2 + 1] == 0) && ((piVar26 <= local_4c || (local_4c < local_50))))
            {
              uVar6 = *puVar13;
              uVar12 = *local_48;
              uVar18 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_00031760(uVar18,uVar6,piVar26,pvVar1,uVar12,local_50,local_4c);
            }
          }
LAB_000298a2:
          free(piVar24);
          for (puVar20 = DAT_000917ec; puVar13 = DAT_000917dc, puVar20 != (undefined4 *)0x0;
              puVar20 = (undefined4 *)puVar20[2]) {
            if (puVar20[0xb] != 0) {
              uVar6 = *puVar20;
              iVar5 = puVar20[7] - (puVar20[5] + puVar20[4]);
              uVar12 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar5,5);
              FUN_00031760(uVar12,uVar6,iVar5);
            }
          }
          goto joined_r0x00028c93;
        }
      }
      free(piVar24);
      puVar13 = DAT_000917dc;
    }
  }
joined_r0x00028c93:
  for (; puVar13 != (undefined4 *)0x0; puVar13 = (undefined4 *)puVar13[1]) {
    iVar5 = bfd_link_hash_lookup(DAT_00091c3c,*puVar13,0,0,1);
    if ((iVar5 == 0) || (1 < (byte)(*(char *)(iVar5 + 0xc) - 3U))) {
      uVar6 = *puVar13;
      uVar12 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_00031760(uVar12,uVar6);
    }
  }
  iVar5 = DAT_00091bbc;
  if ((((byte)DAT_00091c20 & 0x43) != 2) && (((byte)DAT_00091c20 & 3) != 3)) {
    iVar5 = 1;
  }
  if ((((byte)DAT_00091c20 & 0x43) == 0x42) && (DAT_00091bbc == 0 && DAT_00091bb8 == 0)) {
    uVar6 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_00031760(uVar6);
  }
  if (DAT_00091798 == (undefined *)0x0) {
    DAT_00091798 = PTR_s_start_00091360;
    iVar5 = 0;
  }
  iVar9 = bfd_link_hash_lookup(DAT_00091c3c,DAT_00091798,0,0,1);
  if ((iVar9 != 0) && ((byte)(*(char *)(iVar9 + 0xc) - 3U) < 2)) {
    iVar8 = *(int *)(*(int *)(iVar9 + 0x14) + 0x3c);
    if (iVar8 != 0) {
      iVar5 = bfd_set_start_address
                        (DAT_00091c50,
                         *(int *)(*(int *)(iVar9 + 0x14) + 0x38) + *(int *)(iVar9 + 0x18) +
                         *(int *)(iVar8 + 0x1c));
      if (iVar5 != 0) {
        return;
      }
      pcVar10 = "%F%P: %s: can\'t set start address\n";
      goto LAB_000290ef;
    }
  }
  uVar6 = bfd_scan_vma(DAT_00091798,local_20,0);
  if (*local_20[0] != '\0') {
    iVar9 = bfd_get_section_by_name(DAT_00091c50,PTR_s__text_00091354);
    puVar15 = DAT_00091798;
    if (iVar9 == 0) {
      if (iVar5 == 0) {
        return;
      }
      pcVar10 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_000290ef:
      puVar15 = DAT_00091798;
      uVar6 = dcgettext(0,pcVar10,5);
      FUN_00031760(uVar6,puVar15);
      return;
    }
    uVar6 = *(undefined4 *)(iVar9 + 0x1c);
    if (iVar5 != 0) {
      uVar12 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_00031760(uVar12,puVar15,uVar6);
      uVar6 = *(undefined4 *)(iVar9 + 0x1c);
    }
  }
  iVar5 = bfd_set_start_address(DAT_00091c50,uVar6);
  if (iVar5 != 0) {
    return;
  }
  uVar6 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_00031760(uVar6);
  return;
code_r0x00028eb3:
  piVar24 = (int *)piVar24[6];
  goto joined_r0x0002800a;
LAB_000283a0:
  uVar6 = *puVar13;
  uVar12 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_00031760(uVar12,uVar6);
  puVar13 = (undefined4 *)puVar13[2];
  goto joined_r0x00028237;
code_r0x000286ac:
  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar13,&DAT_00091c20);
  puVar13 = (undefined4 *)puVar13[3];
  goto joined_r0x00028684;
code_r0x00028b27:
  iVar5 = piVar24[6];
  uVar6 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_00031760(uVar6,iVar5,pbVar3);
  piVar26 = (int *)*piVar26;
  goto joined_r0x00028aeb;
}

