
/* 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)

{
  bfd *pbVar1;
  char cVar2;
  byte bVar3;
  bfd_sym_chain *pbVar4;
  asneeded_minfo *paVar5;
  bfd *pbVar6;
  lang_output_section_phdr_list *plVar7;
  lang_phdr *plVar8;
  byte *pbVar9;
  bfd_link_hash_entry *pbVar10;
  bfd *pbVar11;
  bfd *pbVar12;
  lang_output_section_statement_struct *plVar13;
  int iVar14;
  lang_statement_union **pplVar15;
  lang_statement_union **pplVar16;
  undefined4 *puVar17;
  undefined4 *puVar18;
  require_defined_symbol *prVar19;
  undefined *puVar20;
  lang_statement_union **pplVar21;
  lang_input_statement_type *plVar22;
  undefined1 uVar23;
  undefined4 *puVar24;
  int iVar25;
  char *pcVar26;
  size_t sVar27;
  bfd_boolean bVar28;
  int iVar29;
  char *pcVar30;
  bfd_elf_version_expr *pbVar31;
  bfd_elf_version_tree *version;
  bfd_target *pbVar32;
  undefined4 uVar33;
  lang_statement_union *plVar34;
  lang_output_section_statement_struct *plVar35;
  lang_statement_union_type **pplVar36;
  bfd_section *pbVar37;
  lang_output_section_statement_type *plVar38;
  int iVar39;
  uint uVar40;
  uint uVar41;
  int *__ptr;
  byte *pbVar42;
  etree_type *peVar43;
  byte bVar44;
  bfd_target *pbVar45;
  lang_statement_union **extraout_ECX;
  lang_statement_union **pplVar46;
  lang_statement_union **extraout_ECX_00;
  asection *paVar47;
  lang_statement_list_type *plVar48;
  lang_statement_union *plVar49;
  bfd_link_hash_entry **ppbVar50;
  lang_output_section_statement_struct *plVar51;
  asection *paVar52;
  lang_statement_union *plVar53;
  bfd_section *pbVar54;
  lang_output_section_phdr_list *plVar55;
  asection *paVar56;
  memory_region_struct *pmVar57;
  lang_statement_union *plVar58;
  lang_output_section_phdr_list *plVar59;
  lang_statement_union *plVar60;
  uint uVar61;
  bfd_link_hash_entry **ppbVar62;
  uint uVar63;
  uint uVar64;
  int *piVar65;
  undefined4 uVar66;
  bfd_elf_version_expr *orig;
  lang_statement_union *plVar67;
  byte *pbVar68;
  char *pcVar69;
  uint uVar70;
  uint uVar71;
  undefined4 *puVar72;
  bool bVar73;
  bool bVar74;
  byte bVar75;
  bfd_vma bVar76;
  undefined8 uVar77;
  lang_statement_union *local_6c;
  void *local_64;
  uint local_5c;
  uint local_58;
  bfd *local_54;
  uint local_50;
  undefined4 *local_4c;
  uint local_48;
  uint local_44;
  uint power;
  undefined4 uStack_14;
  
  bVar75 = 0;
  uStack_14 = 0x28819;
  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);
  }
  iVar25 = bfd_section_already_linked_table_init();
  if (iVar25 == 0) {
    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    einfo(pcVar26);
  }
  lang_statement_iteration = lang_statement_iteration + 1;
  current_target = default_target;
  open_input_bfds(statement_list.head,OPEN_BFD_NORMAL);
  pplVar21 = input_file_chain.tail;
  plVar58 = input_file_chain.head;
  pplVar46 = file_chain.tail;
  plVar49 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    plVar53 = stat_ptr->head;
    pplVar15 = stat_ptr->tail;
    iVar25 = plugin_call_all_symbols_read();
    if (iVar25 != 0) {
      pcVar26 = plugin_error_plugin();
      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      einfo(pcVar30,pcVar26);
    }
    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);
    plVar48 = stat_ptr;
    if (stat_ptr->head != plVar53) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar16 = plVar48->tail;
    plVar53 = *pplVar15;
    plVar48->tail = pplVar15;
    *pplVar15 = (lang_statement_union *)0x0;
    if (file_chain.head != plVar49) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar15 = file_chain.tail;
    plVar49 = *pplVar46;
    file_chain.tail = pplVar46;
    *pplVar46 = (lang_statement_union *)0x0;
    if (input_file_chain.head != plVar58) {
      info_assert("../../ld/ldlang.c",0x1baf);
    }
    pplVar46 = input_file_chain.tail;
    plVar58 = *pplVar21;
    input_file_chain.tail = pplVar21;
    *pplVar21 = (lang_statement_union *)0x0;
    plVar60 = file_chain.head;
    plVar67 = input_file_chain.head;
    if (plVar53 != (lang_statement_union *)0x0) {
      for (; plugin_insert = (lang_input_statement_type *)plVar67,
          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)
      {
        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_00029ef1;
          break;
        }
        if (((plVar60->reloc_statement).section != (asection *)0x0) &&
           (((plVar60->reloc_statement).section)->lineno_count == 0)) {
          plugin_insert = (lang_input_statement_type *)plVar60;
        }
        plVar67 = (lang_statement_union *)plugin_insert;
      }
      plVar60 = (lang_statement_union *)plugin_insert;
      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {
        info_assert("../../ld/ldlang.c",0x1c32);
        plVar60 = (lang_statement_union *)plugin_insert;
      }
LAB_00029ef1:
      plugin_insert = &plVar60->input_statement;
      plVar22 = plugin_insert;
      plVar48 = stat_ptr;
      *pplVar16 = (plugin_insert->header).next;
      (plVar22->header).next = plVar53;
      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {
        plVar48->tail = pplVar16;
      }
      *pplVar46 = plVar22->next_real_file;
      plVar22->next_real_file = plVar58;
      pplVar21 = file_chain.tail;
      if (input_file_chain.tail == &plVar22->next_real_file) {
        input_file_chain.tail = pplVar46;
      }
      if (plVar22->filename == (char *)0x0) {
        *pplVar15 = file_chain.head;
        file_chain.head = plVar49;
        if ((lang_statement_list_type *)pplVar21 != &file_chain) {
          pplVar15 = file_chain.tail;
        }
      }
      else {
        *pplVar15 = plVar22->next;
        plVar22->next = plVar49;
        if (pplVar21 != &plVar22->next) {
          pplVar15 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar15;
      pplVar46 = file_chain.tail;
      plVar49 = file_chain.head;
      lang_statement_iteration = lang_statement_iteration + 1;
      open_input_bfds(statement_list.head,OPEN_BFD_RESCAN);
      if (file_chain.head != plVar49) {
        info_assert("../../ld/ldlang.c",0x1baf);
      }
      plVar49 = *pplVar46;
      file_chain.tail = pplVar46;
      *pplVar46 = (lang_statement_union *)0x0;
      while (plVar49 != (lang_statement_union *)0x0) {
        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;
        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;
        if (pbVar37 != (bfd_section *)0x0) {
          pbVar54 = pbVar37;
        }
        plVar58 = file_chain.head;
        if (input_file_chain.head != (lang_statement_union *)0x0) {
          plVar60 = (lang_statement_union *)0x0;
          local_6c = (lang_statement_union *)0x0;
          plVar53 = input_file_chain.head;
          do {
            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {
              plVar67 = (plVar53->wild_statement).children.head;
              if (plVar67 != (lang_statement_union *)0x0) {
                plVar48 = &(plVar67->wild_statement).children;
                plVar58 = (plVar67->wild_statement).children.head;
                goto LAB_0002a051;
              }
              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;
              local_6c = plVar60;
              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;
            }
            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&
               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {
              plVar60 = plVar53;
            }
            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;
          } while (plVar53 != (lang_statement_union *)0x0);
LAB_0002a010:
          if (local_6c != (lang_statement_union *)0x0) {
            plVar58 = local_6c;
          }
        }
        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;
        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;
            plVar58 = (plVar58->wild_statement).children.head) {
          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&
             (((plVar58->reloc_statement).section)->lineno_count == 0)) {
            plVar58 = plVar48->head;
            break;
          }
          plVar48 = &(plVar58->wild_statement).children;
        }
LAB_0002a051:
        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;
        if (pbVar37 == (bfd_section *)0x0) {
          plVar48->head = plVar49;
          plVar53 = (plVar49->wild_statement).children.head;
          (plVar49->data_statement).output_section = (asection *)plVar58;
          plVar49 = plVar53;
        }
        else {
          paVar47 = (plVar49->data_statement).output_section;
          if (paVar47 != (asection *)0x0) {
            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;
            while (pbVar37 == pbVar54) {
              local_6c = (lang_statement_union *)&paVar47->field_0x18;
              paVar47 = *(asection **)&paVar47->field_0x18;
              if (paVar47 == (asection *)0x0) break;
              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;
            }
          }
          plVar48->head = plVar49;
          plVar49 = *(lang_statement_union **)local_6c;
          *(lang_statement_union **)local_6c = plVar58;
          if (pbVar37->used_by_bfd != (void *)0x0) {
            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =
                 (lang_data_statement_type *)((int)local_6c + -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)) {
    pcVar26 = (char *)dcgettext(0,
                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"
                                ,5);
    minfo(pcVar26);
    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {
      minfo("%s",paVar5->soname);
      sVar27 = strlen(paVar5->soname);
      if (0x1c < sVar27) {
        print_nl();
        sVar27 = 0;
      }
      do {
        print_space();
        sVar27 = sVar27 + 1;
      } while (sVar27 != 0x1e);
      if (paVar5->ref != (bfd *)0x0) {
        minfo("%pB ",paVar5->ref);
      }
      minfo("(%pT)\n",paVar5->name);
    }
  }
  bfd_section_already_linked_table_free();
  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;
      plVar49 = (plVar49->wild_statement).children.head) {
LAB_00028a10:
    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
LAB_00028ac0:
      plVar49 = (plVar49->wild_statement).children.head;
joined_r0x00029918:
      if (plVar49 == (lang_statement_union *)0x0) break;
      goto LAB_00028a10;
    }
    pbVar6 = (plVar49->input_statement).the_bfd;
    iVar25 = bfd_arch_get_compatible
                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);
    pbVar1 = link_info.output_bfd;
    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
      if (iVar25 == 0) {
        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;
        pbVar32 = pbVar6->xvec;
        pbVar45 = (link_info.output_bfd)->xvec;
      }
      else {
        pbVar32 = pbVar6->xvec;
        pbVar45 = (link_info.output_bfd)->xvec;
        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))
        goto LAB_00028a63;
      }
      pcVar26 = pbVar45->name;
      pcVar30 = pbVar32->name;
      pcVar69 = (char *)dcgettext(0,
                                  "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                                  ,5);
      einfo(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);
      if (iVar25 == 0) goto LAB_00028d68;
LAB_00028a63:
      if (pbVar6->section_count == 0) goto LAB_00028ac0;
      uVar66 = 0;
      if (command_line.warn_mismatch == 0) {
        uVar66 = bfd_set_error_handler(ignore_bfd_errors);
      }
      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);
      if (bVar28 == 0) {
        if (command_line.warn_mismatch != 0) {
          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5
                                     );
          einfo(pcVar26,pbVar6);
          goto LAB_00029904;
        }
LAB_00028aaa:
        bfd_set_error_handler(uVar66);
        goto LAB_00028ac0;
      }
LAB_00029904:
      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;
      plVar49 = (plVar49->wild_statement).children.head;
      goto joined_r0x00029918;
    }
    if (iVar25 != 0) goto LAB_00028a63;
LAB_00028d68:
    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;
    uVar66 = bfd_printable_name(link_info.output_bfd);
    uVar33 = bfd_printable_name(pbVar6);
    pcVar26 = (char *)dcgettext(0,
                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                                ,5);
    einfo(pcVar26,uVar33,pbVar6,uVar66);
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (bfd_elf_version_expr *)0x0;
    plVar49 = file_chain.head;
    while (plVar49 != (lang_statement_union *)0x0) {
      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),
            iVar25 == 0) {
        plVar49 = (plVar49->wild_statement).children.head;
        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;
      }
      iVar39 = *(int *)(iVar25 + 0x2c);
      uVar66 = *(undefined4 *)(iVar25 + 0x30);
      pcVar26 = (char *)xmalloc(iVar39);
      iVar29 = bfd_get_section_contents
                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);
      if (iVar29 == 0) {
        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
        einfo(pcVar30,iVar25);
      }
      pcVar30 = pcVar26 + iVar39;
      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {
        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);
        sVar27 = strlen(pcVar26);
      }
      plVar49 = (plVar49->wild_statement).children.head;
      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;
    }
LAB_00028bc4:
    pbVar31 = 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 = pbVar31;
    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();
  puVar20 = PTR__sch_istable_00092f98;
  if (config.build_constructors != 0) {
    local_54 = link_info.input_bfds;
    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;
    if (link_info.input_bfds != (bfd *)0x0) {
      do {
        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {
          while( true ) {
            pbVar9 = (byte *)pbVar37->name;
            bVar44 = *pbVar9;
            if (bVar44 == 0) break;
            bVar3 = puVar20[(uint)bVar44 * 2];
            pbVar42 = pbVar9;
            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {
              pbVar42 = pbVar42 + 1;
              bVar44 = *pbVar42;
              if (bVar44 == 0) goto LAB_0002a660;
              bVar3 = puVar20[(uint)bVar44 * 2];
            }
            pbVar37 = pbVar37->next;
            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;
          }
LAB_0002a660:
          sVar27 = strlen((char *)pbVar9);
          pcVar26 = (char *)xmalloc(sVar27 + 10);
          *pcVar26 = cVar2;
          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);
          lang_define_start_stop(pcVar26,pbVar37);
          pcVar26[1] = cVar2;
          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);
          lang_define_start_stop(pcVar26 + 1,pbVar37);
          free(pcVar26);
        }
LAB_0002a640:
        local_54 = (local_54->link).next;
      } while (local_54 != (bfd *)0x0);
    }
  }
  lang_do_assignments(lang_mark_phase_enum);
  pmVar57 = lang_memory_region_list;
joined_r0x00028c51:
  if (pmVar57 != (lang_memory_region_type *)0x0) {
    do {
      if (pmVar57->origin_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar57->origin_exp);
        uVar33 = expld.result.value._4_4_;
        uVar66 = (undefined4)expld.result.value;
        if (expld.result.valid_p == 0) {
          pcVar26 = (pmVar57->name_list).name;
          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          einfo(pcVar30,pcVar26);
        }
        else {
          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;
          *(undefined4 *)&pmVar57->origin = uVar66;
          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;
          *(undefined4 *)&pmVar57->current = uVar66;
        }
      }
      if (pmVar57->length_exp != (etree_type *)0x0) {
        exp_fold_tree_no_dot(pmVar57->length_exp);
        uVar66 = (undefined4)expld.result.value;
        if (expld.result.valid_p == 0) goto LAB_00028dd0;
        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;
        *(undefined4 *)&pmVar57->length = uVar66;
      }
      pmVar57 = pmVar57->next;
      if (pmVar57 == (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);
  uVar23 = link_info._0_1_;
  plVar49 = file_chain.head;
  if ((link_info._0_1_ & 3) == 2) {
    for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head
        ) {
      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0
            ; pbVar37 = pbVar37->next) {
          if ((pbVar37->flags & 0x2000) == 0) {
            pbVar37->flags = pbVar37->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((uVar23 & 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) {
      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);
      if (iVar25 == 0) {
        config.make_executable = 0;
      }
    }
  }
  ldemul_after_check_relocs();
  plVar58 = (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);
  plVar53 = (lang_statement_union *)0x0;
  plVar49 = ((lang_output_section_statement.head)->header).next;
  if (plVar49 == (lang_statement_union *)0x0) {
LAB_00028f94:
    if (plVar58 != (lang_statement_union *)0x0) {
      (plVar58->output_section_statement).constraint =
           -2 - (plVar58->output_section_statement).constraint;
      while ((plVar53 != plVar58 &&
             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,
             plVar58 != (lang_statement_union *)0x0))) {
        (plVar58->output_section_statement).constraint =
             -2 - (plVar58->output_section_statement).constraint;
      }
    }
  }
  else {
    plVar60 = (lang_statement_union *)0x0;
    plVar67 = lang_output_section_statement.head;
    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {
      if ((plVar53 != (lang_statement_union *)0x0) &&
         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {
        info_assert("../../ld/ldlang.c",0xea0);
        plVar34 = (plVar67->header).next;
      }
      (plVar49->output_section_statement).constraint =
           -2 - (plVar49->output_section_statement).constraint;
      plVar53 = plVar49;
      plVar58 = plVar49;
      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;
LAB_00028f8c:
      plVar49 = (plVar34->header).next;
      plVar60 = plVar58;
      plVar67 = plVar34;
      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;
    }
    if ((plVar49->header).type != lang_insert_statement_enum) {
LAB_00028f8a:
      plVar58 = plVar60;
      goto LAB_00028f8c;
    }
    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);
    if (plVar35 != (lang_output_section_statement_type *)0x0) {
      if ((plVar49->wild_statement).filenames_sorted != 0) {
        do {
          plVar35 = plVar35->prev;
          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;
        } while (plVar35->constraint < 0);
      }
      if (plVar53 != (lang_statement_union *)0x0) {
        plVar51 = (plVar60->output_section_statement).prev;
        plVar13 = (plVar53->output_section_statement).next;
        plVar51->next = plVar13;
        if (plVar13 == (lang_output_section_statement_struct *)0x0) {
          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;
          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;
          plVar51 = plVar35->next;
          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;
LAB_0002996d:
          plVar51->prev = (lang_output_section_statement_struct *)plVar53;
        }
        else {
          plVar13->prev = plVar51;
          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;
          plVar51 = plVar35->next;
          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;
LAB_00029bab:
          lang_output_section_statement.tail =
               (lang_statement_union **)&(plVar53->output_section_statement).next;
        }
        (plVar60->output_section_statement).prev = plVar35;
        paVar52 = (asection *)0x0;
        paVar47 = (asection *)0x0;
        plVar35->next = (lang_output_section_statement_struct *)plVar60;
        do {
          (plVar60->output_section_statement).constraint =
               -2 - (plVar60->output_section_statement).constraint;
          paVar56 = (plVar60->output_section_statement).bfd_section;
          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&
             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {
            paVar47 = paVar56;
          }
        } while ((plVar53 != plVar60) &&
                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,
                plVar60 != (lang_statement_union *)0x0));
        plVar60 = (lang_statement_union *)0x0;
        if (paVar52 != (asection *)0x0) {
          paVar56 = plVar35->bfd_section;
          if (paVar56 == (asection *)0x0) {
            plVar60 = (lang_statement_union *)plVar35->prev;
            if (plVar60 != (lang_statement_union *)0x0) {
              do {
                if (((-1 < (plVar60->output_section_statement).constraint) &&
                    (paVar56 = (plVar60->output_section_statement).bfd_section,
                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))
                goto LAB_000299ca;
                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;
              } while (plVar60 != (lang_statement_union *)0x0);
              plVar60 = (lang_statement_union *)0x0;
            }
          }
          else {
LAB_000299ca:
            plVar60 = (lang_statement_union *)0x0;
            if (paVar56 != paVar52) {
              pbVar37 = paVar47->prev;
              pbVar54 = paVar52->next;
              if (pbVar37 == (bfd_section *)0x0) {
                (link_info.output_bfd)->sections = pbVar54;
              }
              else {
                pbVar37->next = pbVar54;
                pbVar54 = paVar52->next;
              }
              if (pbVar54 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = pbVar37;
              }
              else {
                pbVar54->prev = pbVar37;
              }
              pbVar37 = paVar56->next;
              paVar52->next = pbVar37;
              if (pbVar37 == (bfd_section *)0x0) {
                (link_info.output_bfd)->section_last = paVar52;
              }
              else {
                pbVar37->prev = paVar52;
              }
              paVar47->prev = paVar56;
              plVar60 = (lang_statement_union *)0x0;
              paVar56->next = paVar47;
            }
          }
        }
      }
      pplVar36 = insert_os_after(plVar35);
      plVar49 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;
      plVar58 = *pplVar36;
      (plVar67->header).next = plVar58;
      if (plVar58 == (lang_statement_union *)0x0) {
        statement_list.tail = (lang_statement_union **)plVar67;
      }
      *pplVar36 = plVar49;
      plVar53 = (lang_statement_union *)0x0;
      plVar58 = plVar60;
      plVar34 = lang_output_section_statement.head;
      goto LAB_00028f8c;
    }
LAB_00029066:
    pcVar26 = (plVar49->wild_statement).filename;
    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);
    einfo(pcVar30,pcVar26);
  }
  pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180);
  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;
      plVar49 = (plVar49->wild_statement).children.head) {
    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;
joined_r0x000290b4:
    if (pbVar54 != (bfd_section *)0x0) {
      do {
        if (pbVar54->output_section == (bfd_section *)0x0) {
          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x000290dc;
          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);
          bVar73 = false;
          bVar74 = bVar28 == 0;
          if (bVar74) {
            pbVar9 = (byte *)pbVar54->name;
            iVar25 = 7;
            pbVar42 = pbVar9;
            pbVar68 = (byte *)"COMMON";
            do {
              if (iVar25 == 0) break;
              iVar25 = iVar25 + -1;
              bVar73 = *pbVar42 < *pbVar68;
              bVar74 = *pbVar42 == *pbVar68;
              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;
              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;
            } while (bVar74);
            if ((!bVar73 && !bVar74) == bVar73) {
              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,pbVar54,(flag_info *)0x0,
                                 default_common_section);
              }
            }
            else if (config.orphan_handling == orphan_handling_discard) {
              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);
              if ((plVar38->addr_tree == (etree_union *)0x0) &&
                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {
                peVar43 = exp_intop(0);
                plVar38->addr_tree = peVar43;
              }
              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);
            }
            else {
              if (config.orphan_handling == orphan_handling_error) {
                pbVar6 = pbVar54->owner;
                pcVar26 = (char *)dcgettext(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                einfo(pcVar26,pbVar54,pbVar6);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),
                 bVar28 == 0)) {
                iVar25 = 0;
              }
              else {
                iVar25 = 0x17e;
              }
              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);
              if (plVar38 == (lang_output_section_statement_type *)0x0) {
                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);
                if ((plVar38->addr_tree == (etree_union *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {
                  peVar43 = exp_intop(0);
                  plVar38->addr_tree = peVar43;
                }
                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);
              }
              if (config.orphan_handling == orphan_handling_warn) {
                pcVar26 = plVar38->name;
                pbVar6 = pbVar54->owner;
                pcVar30 = (char *)dcgettext(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                einfo(pcVar30,pbVar54,pbVar6,pcVar26);
              }
            }
          }
          else {
            pbVar54->output_section = pbVar37;
          }
        }
        pbVar54 = pbVar54->next;
        if (pbVar54 == (bfd_section *)0x0) break;
      } while( true );
    }
  }
  bVar44 = link_info._0_1_ & 3;
  ppbVar62 = start_stop_syms;
  plVar49 = lang_output_section_statement.head;
  pbVar6 = link_info.output_bfd;
  if (bVar44 != 2) {
    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);
    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");
    if (iVar25 == 0) {
      bVar44 = link_info._0_1_ & 3;
      ppbVar62 = start_stop_syms;
      plVar49 = lang_output_section_statement.head;
      pbVar6 = link_info.output_bfd;
    }
    else {
      bVar44 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;
        ppbVar62 = start_stop_syms;
        plVar49 = lang_output_section_statement.head;
        pbVar6 = link_info.output_bfd;
      }
      else {
        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;
        ppbVar62 = start_stop_syms;
        plVar49 = lang_output_section_statement.head;
        pbVar6 = link_info.output_bfd;
      }
    }
  }
  for (; start_stop_syms = ppbVar62, link_info.output_bfd = pbVar6,
      plVar49 != (lang_statement_union *)0x0;
      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {
    plVar35 = (plVar49->output_section_statement).prev;
    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&
         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))
        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&
       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&
        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))
       )) {
      (plVar49->wild_statement).walk_wild_section_handler =
           (walk_wild_section_handler_t)plVar35->lma_region;
    }
    ppbVar62 = start_stop_syms;
    pbVar6 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (start_stop_count != 0)) {
    ppbVar50 = ppbVar62 + start_stop_count;
    do {
      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {
        pbVar1 = (pbVar10->u).undef.abfd;
        puVar72 = (undefined4 *)(pbVar1->section_htab).count;
        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||
           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {
          pbVar10->field_0xc = 1;
          (pbVar10->u).undef.abfd = (bfd *)0x0;
          break;
        }
        ppbVar62 = ppbVar62 + 1;
        if (ppbVar62 == ppbVar50) goto LAB_00029327;
      }
      ppbVar62 = ppbVar62 + 1;
    } while (ppbVar62 != ppbVar50);
  }
LAB_00029327:
  if (bVar44 != 2) {
    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;
        paVar47 = paVar47->next) {
      pcVar26 = paVar47->name;
      sVar27 = strlen(pcVar26);
      pcVar30 = (char *)xmalloc(sVar27 + 10);
      sprintf(pcVar30,".startof.%s",pcVar26);
      lang_define_start_stop(pcVar30,paVar47);
      builtin_strncpy(pcVar30 + 1,".size",5);
      lang_define_start_stop(pcVar30 + 1,paVar47);
      free(pcVar30);
    }
  }
  ldemul_before_allocation();
  plVar55 = (lang_output_section_phdr_list *)0x0;
  local_64 = (void *)xmalloc(0x28);
  local_44 = 10;
  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {
    local_6c = (lang_statement_union *)0x0;
    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;
        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {
      if (-1 < (plVar49->output_section_statement).constraint) {
        plVar59 = (plVar49->output_section_statement).phdrs;
        if (plVar59 == (lang_output_section_phdr_list *)0x0) {
          if ((((plVar49->output_section_statement).sectype != noload_section) &&
              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&
             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&
              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {
            while( true ) {
              plVar55 = plVar59;
              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;
              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;
              if (plVar58 == (lang_statement_union *)0x0) break;
              plVar59 = (plVar58->output_section_statement).phdrs;
            }
            plVar55 = (lang_output_section_phdr_list *)0x0;
            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            einfo(pcVar26);
          }
        }
        else {
          plVar55 = plVar59;
          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;
          while (plVar7 != (lang_output_section_phdr_list *)0x0) {
LAB_000293ea:
            iVar25 = strcmp(plVar59->name,plVar8->name);
            uVar61 = local_44;
            if (iVar25 == 0) {
              if (local_44 <= local_6c) {
                uVar61 = local_44 * 2;
                local_64 = (void *)xrealloc(local_64,local_44 << 3);
              }
              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =
                   (plVar49->wild_statement).children.tail;
              local_6c = (lang_statement_union *)((int)local_6c + 1);
              plVar59->used = 1;
            }
            plVar59 = plVar59->next;
            local_44 = uVar61;
            plVar7 = plVar59;
          }
        }
      }
    }
    uVar66 = 0;
    if (plVar8->flags != (etree_type *)0x0) {
      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");
      uVar66 = (undefined4)bVar76;
    }
    peVar43 = plVar8->at;
    bVar76 = 0;
    if (peVar43 != (etree_type *)0x0) {
      bVar76 = exp_get_vma(peVar43,0,"phdr load address");
      peVar43 = plVar8->at;
    }
    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,
                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,
                             plVar8->phdrs,local_6c,local_64);
    if (iVar25 == 0) {
      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      einfo(pcVar26);
    }
  }
  free(local_64);
  pplVar46 = extraout_ECX;
  for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;
      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {
    if ((-1 < (plVar49->output_section_statement).constraint) &&
       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0
       )) {
      paVar47 = (asection *)(plVar49->wild_statement).tree;
joined_r0x0002951b:
      if (paVar47 != (asection *)0x0) {
        do {
          bVar73 = false;
          bVar74 = paVar47->index == 0;
          if (bVar74) {
            pbVar9 = (byte *)paVar47->id;
            pplVar46 = (lang_statement_union **)0x5;
            pbVar42 = pbVar9;
            pbVar68 = (byte *)0x3f35d;
            do {
              if (pplVar46 == (lang_statement_union **)0x0) break;
              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);
              bVar73 = *pbVar42 < *pbVar68;
              bVar74 = *pbVar42 == *pbVar68;
              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;
              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;
            } while (bVar74);
            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;
          }
          paVar47 = (asection *)paVar47->name;
          if (paVar47 == (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,(bfd_boolean *)pplVar46);
    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;
  uVar61 = opb_shift;
  if (start_stop_count != 0) {
    ppbVar62 = start_stop_syms + start_stop_count;
    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);
    ppbVar50 = start_stop_syms;
    do {
      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {
        pcVar26 = (pbVar10->root).string;
        local_5c._0_1_ = (byte)uVar61;
        if (*pcVar26 != '.') {
          cVar2 = pbVar6->xvec->symbol_leading_char;
          pbVar37 = ((pbVar10->u).def.section)->output_section;
          (pbVar10->u).undef.abfd = (bfd *)pbVar37;
          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {
            uVar63 = *(uint *)((int)&pbVar37->size + 4);
            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));
            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |
                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));
            pcVar30 = pcVar69;
            if ((uVar61 & 0x20) != 0) {
              pcVar30 = (char *)0x0;
              pcVar26 = pcVar69;
            }
            (pbVar10->u).i.warning = pcVar26;
            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;
          }
          break;
        }
        if (pcVar26[2] != 'i') break;
        pbVar11 = (pbVar10->u).undef.abfd;
        pbVar12 = pbVar11->plugin_dummy_bfd;
        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));
        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |
                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));
        pcVar30 = pcVar69;
        if ((uVar61 & 0x20) != 0) {
          pcVar30 = (char *)0x0;
          pcVar26 = pcVar69;
        }
        ppbVar50 = ppbVar50 + 1;
        (pbVar10->u).i.warning = pcVar26;
        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;
        (pbVar10->u).undef.abfd = pbVar1;
        if (ppbVar62 == ppbVar50) goto LAB_000296b8;
      }
      ppbVar50 = ppbVar50 + 1;
    } while (ppbVar62 != ppbVar50);
  }
LAB_000296b8:
  lang_do_assignments(lang_final_phase_enum);
  ldemul_finish();
  ldexp_finalize_syms();
  prVar19 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);
    uVar70 = iVar25 - 1U >> 5 & 1;
    bVar75 = (byte)(iVar25 - 1U);
    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);
    iVar25 = uVar61 * 2;
    uVar63 = iVar25 - 1;
    pbVar37 = (link_info.output_bfd)->sections;
    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);
    if (pbVar37 != (bfd_section *)0x0) {
      do {
        if ((pbVar37->flags & 1) != 0) {
          uVar70 = (uint)pbVar37->vma;
          uVar41 = (uint)pbVar37->size;
          uVar40 = *(uint *)((int)&pbVar37->vma + 4);
          iVar25 = *(int *)((int)&pbVar37->size + 4);
          uVar64 = uVar63 & uVar70 + uVar41;
          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);
          if ((uVar71 == 0 && uVar64 == 0) ||
             (uVar40 = uVar61 & uVar40,
             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {
            uVar70 = (uint)pbVar37->lma;
            uVar40 = *(uint *)((int)&pbVar37->lma + 4);
            uVar64 = uVar63 & uVar41 + uVar70;
            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;
            if ((uVar41 == 0 && uVar64 == 0) ||
               (uVar40 = uVar40 & uVar61,
               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))
            goto LAB_0002a1a0;
            pcVar26 = pbVar37->name;
            pcVar30 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            pcVar26 = pbVar37->name;
            pcVar30 = "%X%P: section %s VMA wraps around address space\n";
          }
          pcVar30 = (char *)dcgettext(0,pcVar30,5);
          einfo(pcVar30,pcVar26);
        }
LAB_0002a1a0:
        pbVar37 = pbVar37->next;
      } while (pbVar37 != (bfd_section *)0x0);
    }
    prVar19 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      __ptr = (int *)xmalloc((link_info.output_bfd)->section_count << 3);
      uVar61 = 0;
      pbVar37 = (link_info.output_bfd)->sections;
      if (pbVar37 != (bfd_section *)0x0) {
        do {
          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&
             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {
            iVar25 = uVar61 * 2;
            uVar61 = uVar61 + 1;
            __ptr[iVar25] = (int)pbVar37;
            (__ptr + iVar25)[1] = 0;
          }
          pbVar37 = pbVar37->next;
        } while (pbVar37 != (bfd_section *)0x0);
        if (1 < uVar61) {
          qsort(__ptr,uVar61,8,sort_sections_by_lma);
          local_4c = (undefined4 *)0x0;
          local_48 = 0;
          local_5c = 0;
          local_58 = 0;
          piVar65 = __ptr;
          puVar72 = (undefined4 *)0x0;
          do {
            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,
                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,
                  (*(byte *)(puVar17 + 5) & 2) != 0) {
              puVar18 = (undefined4 *)puVar17[9];
              uVar63 = puVar17[10];
              bVar75 = (byte)opb_shift & 0x1f;
              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);
              uVar40 = uVar70;
              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;
              if ((opb_shift & 0x20) != 0) {
                uVar40 = 0;
                uVar41 = uVar70;
              }
              uVar70 = uVar41 + ((int)puVar18 - 1U);
              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +
                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);
              puVar24 = puVar17;
              if (puVar72 == (undefined4 *)0x0) break;
              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||
                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {
                uVar66 = *puVar17;
                uVar33 = *puVar72;
                pcVar26 = (char *)dcgettext(0,
                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
                                            ,5);
                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,
                      local_58);
                piVar65[1] = 1;
                break;
              }
              piVar65 = piVar65 + 2;
              puVar72 = puVar17;
              local_5c = uVar70;
              local_58 = uVar41;
              local_4c = puVar18;
              local_48 = uVar63;
              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;
            }
            local_48 = uVar63;
            local_4c = puVar18;
            local_58 = uVar41;
            local_5c = uVar70;
            puVar72 = puVar24;
            piVar65 = piVar65 + 2;
          } while (__ptr + uVar61 * 2 != piVar65);
LAB_0002a3c8:
          qsort(__ptr,uVar61,8,sort_sections_by_vma);
          puVar72 = (undefined4 *)*__ptr;
          uVar40 = 1;
          uVar63 = puVar72[8];
          pbVar6 = (bfd *)puVar72[7];
          uVar70 = uVar63;
          uVar41 = (uint)pbVar6;
          do {
            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);
            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);
            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;
            uVar40 = uVar40 + 1;
            uVar70 = uVar71;
            uVar41 = uVar64;
          } while (uVar40 != uVar61);
          bVar75 = (byte)opb_shift & 0x1f;
          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);
          uVar41 = uVar40;
          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;
          if ((opb_shift & 0x20) != 0) {
            uVar41 = 0;
            uVar70 = uVar40;
          }
          local_6c = (lang_statement_union *)0x0;
          uVar40 = uVar70 + ((int)pbVar6 - 1U);
          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +
                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);
          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,
                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),
                local_6c != (lang_statement_union *)uVar61) {
            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];
            pbVar6 = (bfd *)puVar72[7];
            uVar63 = puVar72[8];
            bVar75 = (byte)opb_shift & 0x1f;
            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);
            uVar41 = uVar40;
            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;
            if ((opb_shift & 0x20) != 0) {
              uVar41 = 0;
              uVar70 = uVar40;
            }
            uVar40 = uVar70 + ((int)pbVar6 - 1U);
            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +
                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);
            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&
               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||
                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {
              uVar66 = *puVar72;
              uVar33 = *local_4c;
              pcVar26 = (char *)dcgettext(0,
                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
                                          ,5);
              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,
                    local_58);
            }
          }
LAB_0002a9b9:
          free(__ptr);
          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,
              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {
            if (pmVar57->had_full_message != 0) {
              pcVar26 = (pmVar57->name_list).name;
              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);
              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);
              einfo(pcVar30,pcVar26,iVar25);
            }
          }
          goto joined_r0x000296eb;
        }
      }
      free(__ptr);
      prVar19 = require_defined_symbol_list;
    }
  }
joined_r0x000296eb:
  for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {
    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);
    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {
      pcVar26 = prVar19->name;
      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      einfo(pcVar30,pcVar26);
    }
  }
  iVar25 = entry_from_cmdline;
  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {
    iVar25 = 1;
  }
  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {
    pcVar26 = (char *)dcgettext(0,
                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"
                                ,5);
    einfo(pcVar26);
  }
  if (entry_symbol.name == (char *)0x0) {
    entry_symbol.name = entry_symbol_default;
    iVar25 = 0;
  }
  iVar39 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);
  if ((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)) {
    iVar29 = *(int *)(iVar39 + 0x14);
    iVar14 = *(int *)(iVar29 + 0x54);
    if (iVar14 != 0) {
      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);
      iVar25 = bfd_set_start_address
                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),
                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +
                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +
                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));
      if (iVar25 != 0) {
        return;
      }
      pcVar26 = "%F%P: %s: can\'t set start address\n";
      goto LAB_00029b59;
    }
  }
  uVar77 = bfd_scan_vma(entry_symbol.name,&power,0);
  if (*(char *)power != '\0') {
    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);
    pcVar26 = entry_symbol.name;
    if (iVar39 == 0) {
      if (iVar25 == 0) {
        return;
      }
      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_00029b59:
      pcVar30 = entry_symbol.name;
      pcVar26 = (char *)dcgettext(0,pcVar26,5);
      einfo(pcVar26,pcVar30);
      return;
    }
    uVar66 = *(undefined4 *)(iVar39 + 0x1c);
    uVar33 = *(undefined4 *)(iVar39 + 0x20);
    uVar77 = *(undefined8 *)(iVar39 + 0x1c);
    if (iVar25 != 0) {
      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5
                                 );
      einfo(pcVar30,pcVar26,uVar66,uVar33);
      uVar77 = *(undefined8 *)(iVar39 + 0x1c);
    }
  }
  iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77);
  if (iVar25 != 0) {
    return;
  }
  pcVar26 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);
  einfo(pcVar26);
  return;
LAB_00028dd0:
  pcVar26 = (pmVar57->name_list).name;
  pcVar30 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  einfo(pcVar30,pcVar26);
  pmVar57 = pmVar57->next;
  goto joined_r0x00028c51;
code_r0x000290dc:
  (*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);
  pbVar54 = pbVar54->next;
  goto joined_r0x000290b4;
code_r0x00029557:
  plVar58 = (plVar49->wild_statement).children.head;
  pcVar26 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  einfo(pcVar26,plVar58,pbVar9);
  paVar47 = (asection *)paVar47->name;
  pplVar46 = extraout_ECX_00;
  goto joined_r0x0002951b;
}



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

void FUN_00028810(void)

{
  char cVar1;
  byte bVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  uint uVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 uVar8;
  size_t sVar9;
  int iVar10;
  int iVar11;
  char *pcVar12;
  char *pcVar13;
  undefined4 uVar14;
  undefined4 *puVar15;
  int *piVar16;
  undefined *puVar17;
  uint uVar18;
  byte *pbVar19;
  undefined4 uVar20;
  byte bVar21;
  undefined4 *puVar22;
  int *piVar23;
  int *piVar24;
  int iVar25;
  int *piVar26;
  int *piVar27;
  int iVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  int *piVar32;
  byte *pbVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  bool bVar37;
  bool bVar38;
  byte bVar39;
  undefined8 uVar40;
  int *local_6c;
  void *local_64;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  undefined4 *local_4c;
  uint local_48;
  uint local_44;
  char *local_20 [3];
  undefined4 uStack_14;
  
  bVar39 = 0;
  uStack_14 = 0x28819;
  if (DAT_00093d14 != 0) {
    FUN_0001ea90();
  }
  DAT_000938b0 = DAT_00093df4;
  FUN_00021b90(FUN_00024b50,DAT_000938a8);
  FUN_0001f3d0();
  FUN_000314e0();
  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
    FUN_0001e860();
  }
  iVar7 = bfd_section_already_linked_table_init();
  if (iVar7 == 0) {
    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_00032ba0(uVar8);
  }
  DAT_000937e0 = DAT_000937e0 + 1;
  DAT_000938b0 = DAT_00093df4;
  FUN_00026280();
  piVar27 = DAT_00093c28;
  piVar23 = DAT_00093c24;
  piVar26 = DAT_00093800;
  piVar24 = DAT_000937fc;
  if ((DAT_00093c81 & 2) != 0) {
    iVar7 = *(int *)PTR_DAT_00093338;
    piVar32 = *(int **)(PTR_DAT_00093338 + 4);
    iVar11 = FUN_00036670();
    if (iVar11 != 0) {
      uVar8 = FUN_00035fe0();
      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_00032ba0(uVar14,uVar8);
    }
    FUN_00026280();
    puVar17 = PTR_DAT_00093338;
    if (*(int *)PTR_DAT_00093338 != iVar7) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar16 = *(int **)(puVar17 + 4);
    iVar7 = *piVar32;
    *(int **)(puVar17 + 4) = piVar32;
    *piVar32 = 0;
    if (DAT_000937fc != piVar24) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar32 = DAT_00093800;
    piVar24 = (int *)*piVar26;
    DAT_00093800 = piVar26;
    *piVar26 = 0;
    if (DAT_00093c24 != piVar23) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar23 = DAT_00093c28;
    iVar11 = *piVar27;
    DAT_00093c28 = piVar27;
    *piVar27 = 0;
    piVar26 = DAT_000937fc;
    piVar27 = DAT_00093c24;
    if (iVar7 != 0) {
      for (; DAT_00093840 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {
        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {
          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;
          break;
        }
        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {
          DAT_00093840 = piVar26;
        }
        piVar27 = DAT_00093840;
      }
      piVar26 = DAT_00093840;
      if (DAT_00093840 == (int *)0x0) {
        FUN_00032bf0("../../ld/ldlang.c",0x1c32);
        piVar26 = DAT_00093840;
      }
LAB_00029ef1:
      DAT_00093840 = piVar26;
      piVar26 = DAT_00093840;
      puVar17 = PTR_DAT_00093338;
      *piVar16 = *DAT_00093840;
      *piVar26 = iVar7;
      if (piVar26 == *(int **)(puVar17 + 4)) {
        *(int **)(puVar17 + 4) = piVar16;
      }
      *piVar23 = piVar26[7];
      piVar26[7] = iVar11;
      piVar27 = DAT_00093800;
      if (DAT_00093c28 == piVar26 + 7) {
        DAT_00093c28 = piVar23;
      }
      if (piVar26[2] == 0) {
        *piVar32 = (int)DAT_000937fc;
        DAT_000937fc = piVar24;
        if ((int **)piVar27 != &DAT_000937fc) {
          piVar32 = DAT_00093800;
        }
      }
      else {
        *piVar32 = piVar26[6];
        piVar26[6] = (int)piVar24;
        if (piVar27 != piVar26 + 6) {
          piVar32 = DAT_00093800;
        }
      }
      DAT_00093800 = piVar32;
      piVar26 = DAT_00093800;
      piVar24 = DAT_000937fc;
      DAT_000937e0 = DAT_000937e0 + 1;
      FUN_00026280();
      if (DAT_000937fc != piVar24) {
        FUN_00032bf0("../../ld/ldlang.c",0x1baf);
      }
      iVar7 = *piVar26;
      DAT_00093800 = piVar26;
      *piVar26 = 0;
      while (iVar7 != 0) {
        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);
        iVar10 = *(int *)(iVar7 + 0x10);
        if (iVar11 != 0) {
          iVar10 = iVar11;
        }
        piVar24 = DAT_000937fc;
        if (DAT_00093c24 != (int *)0x0) {
          piVar23 = (int *)0x0;
          local_6c = (int *)0x0;
          piVar26 = DAT_00093c24;
          do {
            while (piVar26[4] == iVar10) {
              iVar25 = piVar26[6];
              if (iVar25 != 0) {
                piVar24 = (int *)(iVar25 + 0x18);
                iVar10 = *(int *)(iVar25 + 0x18);
                goto LAB_0002a051;
              }
              piVar26 = (int *)piVar26[7];
              local_6c = piVar23;
              if (piVar26 == (int *)0x0) goto LAB_0002a010;
            }
            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {
              piVar23 = piVar26;
            }
            piVar26 = (int *)piVar26[7];
          } while (piVar26 != (int *)0x0);
LAB_0002a010:
          if (local_6c != (int *)0x0) {
            piVar24 = local_6c;
          }
        }
        piVar24 = piVar24 + 6;
        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {
          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&
             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {
            iVar10 = *piVar24;
            break;
          }
          piVar24 = (int *)(iVar10 + 0x18);
        }
LAB_0002a051:
        local_6c = (int *)(iVar7 + 0x18);
        if (iVar11 == 0) {
          *piVar24 = iVar7;
          iVar11 = *(int *)(iVar7 + 0x18);
          *(int *)(iVar7 + 0x18) = iVar10;
          iVar7 = iVar11;
        }
        else {
          iVar25 = *(int *)(iVar7 + 0x18);
          if (iVar25 != 0) {
            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);
            while (iVar11 == iVar28) {
              local_6c = (int *)(iVar25 + 0x18);
              iVar25 = *(int *)(iVar25 + 0x18);
              if (iVar25 == 0) break;
              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);
            }
          }
          *piVar24 = iVar7;
          iVar7 = *local_6c;
          *local_6c = iVar10;
          if (*(int *)(iVar11 + 0xa4) != 0) {
            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;
          }
        }
      }
    }
  }
  if (DAT_00093cc8 != (undefined4 *)0x0) {
    FUN_00032bf0("../../ld/ldlang.c",0x1c67);
  }
  DAT_00093cc8 = &DAT_000937f4;
  if (DAT_000937f8 == (undefined *)0x0) {
    DAT_00093cc8 = DAT_000937f4;
    if (PTR_s_start_00093340 != (undefined *)0x0) {
      FUN_00021990();
    }
  }
  if (DAT_00093cd0 != 0) {
    FUN_00021990();
  }
  if (DAT_00093cd4 != 0) {
    FUN_00021990();
  }
  FUN_000313f0();
  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {
    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);
    FUN_00032c30(uVar8);
    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
      FUN_00032c30(&DAT_0004de8a,puVar15[1]);
      sVar9 = strlen((char *)puVar15[1]);
      if (0x1c < sVar9) {
        FUN_00031ce0();
        sVar9 = 0;
      }
      do {
        FUN_00031cb0();
        sVar9 = sVar9 + 1;
      } while (sVar9 != 0x1e);
      if (puVar15[2] != 0) {
        FUN_00032c30(&DAT_0004e11a,puVar15[2]);
      }
      FUN_00032c30("(%pT)\n",puVar15[3]);
    }
  }
  bfd_section_already_linked_table_free();
  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
LAB_00028a10:
    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {
LAB_00028ac0:
      piVar24 = (int *)piVar24[6];
joined_r0x00029918:
      if (piVar24 == (int *)0x0) break;
      goto LAB_00028a10;
    }
    iVar7 = piVar24[4];
    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);
    iVar11 = DAT_00093cb4;
    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {
      if (iVar10 == 0) {
        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;
        puVar15 = *(undefined4 **)(iVar7 + 4);
        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);
      }
      else {
        puVar15 = *(undefined4 **)(iVar7 + 4);
        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);
        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))
        goto LAB_00028a63;
      }
      uVar8 = *puVar22;
      uVar14 = *puVar15;
      uVar20 = dcgettext(0,
                         "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                         ,5);
      FUN_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);
      if (iVar10 == 0) goto LAB_00028d68;
LAB_00028a63:
      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;
      uVar8 = 0;
      if (DAT_00093d30 == 0) {
        uVar8 = bfd_set_error_handler(FUN_0001df90);
      }
      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);
      if (iVar11 == 0) {
        if (DAT_00093d30 != 0) {
          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
          FUN_00032ba0(uVar14,iVar7);
          goto LAB_00029904;
        }
LAB_00028aaa:
        bfd_set_error_handler(uVar8);
        goto LAB_00028ac0;
      }
LAB_00029904:
      if (DAT_00093d30 == 0) goto LAB_00028aaa;
      piVar24 = (int *)piVar24[6];
      goto joined_r0x00029918;
    }
    if (iVar10 != 0) goto LAB_00028a63;
LAB_00028d68:
    if (DAT_00093d30 == 0) goto LAB_00028ac0;
    uVar8 = bfd_printable_name(DAT_00093cb4);
    uVar14 = bfd_printable_name(iVar7);
    uVar20 = dcgettext(0,
                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                       ,5);
    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);
  }
  if (DAT_00093d74 != 0) {
    uVar8 = 0;
    piVar24 = DAT_000937fc;
    while (piVar24 != (int *)0x0) {
      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {
        piVar24 = (int *)piVar24[6];
        if (piVar24 == (int *)0x0) goto LAB_00028bc4;
      }
      iVar11 = *(int *)(iVar7 + 0x2c);
      uVar14 = *(undefined4 *)(iVar7 + 0x30);
      pcVar12 = (char *)xmalloc(iVar11);
      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);
      if (iVar10 == 0) {
        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
        FUN_00032ba0(uVar14,iVar7);
      }
      pcVar13 = pcVar12 + iVar11;
      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {
        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);
        sVar9 = strlen(pcVar12);
      }
      piVar24 = (int *)piVar24[6];
      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;
    }
LAB_00028bc4:
    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);
    iVar7 = xcalloc(1,0x3c);
    *(undefined4 *)(iVar7 + 0xc) = uVar8;
    *(undefined4 *)(iVar7 + 0x1c) = uVar14;
    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;
    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;
    FUN_000283d0(DAT_00093d74,iVar7,0);
  }
  FUN_0002ba20();
  puVar17 = PTR__sch_istable_00092f98;
  if (DAT_00093d8c != 0) {
    local_54 = DAT_00093cbc;
    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);
    if (DAT_00093cbc != 0) {
      do {
        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;
            puVar15 = (undefined4 *)puVar15[3]) {
          while( true ) {
            pbVar3 = (byte *)*puVar15;
            bVar21 = *pbVar3;
            if (bVar21 == 0) break;
            bVar2 = puVar17[(uint)bVar21 * 2];
            pbVar19 = pbVar3;
            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {
              pbVar19 = pbVar19 + 1;
              bVar21 = *pbVar19;
              if (bVar21 == 0) goto LAB_0002a660;
              bVar2 = puVar17[(uint)bVar21 * 2];
            }
            puVar15 = (undefined4 *)puVar15[3];
            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;
          }
LAB_0002a660:
          sVar9 = strlen((char *)pbVar3);
          pcVar12 = (char *)xmalloc(sVar9 + 10);
          *pcVar12 = cVar1;
          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);
          FUN_0001ec30();
          pcVar12[1] = cVar1;
          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);
          FUN_0001ec30();
          free(pcVar12);
        }
LAB_0002a640:
        local_54 = *(int *)(local_54 + 0x9c);
      } while (local_54 != 0);
    }
  }
  FUN_00025190(1);
  puVar15 = DAT_0009384c;
joined_r0x00028c51:
  if (puVar15 != (undefined4 *)0x0) {
    do {
      if (puVar15[3] != 0) {
        FUN_00030910(puVar15[3]);
        uVar14 = DAT_00093e38;
        uVar8 = DAT_00093e34;
        if (DAT_00093e44 == 0) {
          uVar8 = *puVar15;
          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_00032ba0(uVar14,uVar8);
        }
        else {
          puVar15[10] = DAT_00093e38;
          puVar15[4] = uVar8;
          puVar15[5] = uVar14;
          puVar15[9] = uVar8;
        }
      }
      if (puVar15[8] != 0) {
        FUN_00030910(puVar15[8]);
        uVar8 = DAT_00093e34;
        if (DAT_00093e44 == 0) goto LAB_00028dd0;
        puVar15[7] = DAT_00093e38;
        puVar15[6] = uVar8;
      }
      puVar15 = (undefined4 *)puVar15[2];
      if (puVar15 == (undefined4 *)0x0) break;
    } while( true );
  }
  DAT_00093e20 = 0;
  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {
    if (DAT_00093dac == 0) {
      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);
    }
    else {
      if (DAT_00093dac == 2) {
        local_20[0] = (char *)0x4;
        do {
          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);
    }
  }
  FUN_00025db0();
  bVar21 = DAT_00093c80;
  piVar24 = DAT_000937fc;
  if ((DAT_00093c80 & 3) == 2) {
    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {
          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {
            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar21 & 0x40) != 0) {
    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);
  }
  iVar7 = DAT_00093cbc;
  if ((DAT_00093c86 & 0x20) != 0) {
    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {
      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);
      if (iVar11 == 0) {
        DAT_00093d84 = 0;
      }
    }
  }
  FUN_00031410();
  piVar26 = (int *)0x0;
  FUN_0001e100();
  DAT_000937e0 = DAT_000937e0 + 1;
  FUN_00025ed0();
  piVar23 = (int *)0x0;
  piVar24 = (int *)*DAT_00093c40;
  if (piVar24 == (int *)0x0) {
LAB_00028f94:
    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;
    piVar32 = DAT_00093c40;
    while (piVar16 = piVar24, piVar24[1] == 0) {
      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {
        FUN_00032bf0("../../ld/ldlang.c",0xea0);
        piVar16 = (int *)*piVar32;
      }
      piVar24[0x12] = -2 - piVar24[0x12];
      piVar23 = piVar24;
      piVar26 = piVar24;
      if (piVar27 != (int *)0x0) goto LAB_00028f8a;
LAB_00028f8c:
      piVar24 = (int *)*piVar16;
      piVar27 = piVar26;
      piVar32 = piVar16;
      if (piVar24 == (int *)0x0) goto LAB_00028f94;
    }
    if (piVar24[1] != 0xe) {
LAB_00028f8a:
      piVar26 = piVar27;
      goto LAB_00028f8c;
    }
    iVar7 = FUN_00023550(piVar24[2],0,0);
    if (iVar7 != 0) {
      if (piVar24[3] != 0) {
        do {
          iVar7 = *(int *)(iVar7 + 0x14);
          if (iVar7 == 0) goto LAB_00029066;
        } while (*(int *)(iVar7 + 0x48) < 0);
      }
      if (piVar23 != (int *)0x0) {
        iVar11 = piVar27[5];
        iVar10 = piVar23[4];
        *(int *)(iVar11 + 0x10) = iVar10;
        if (iVar10 == 0) {
          DAT_00093c44 = (int *)(iVar11 + 0x10);
          piVar23[4] = *(int *)(iVar7 + 0x10);
          iVar11 = *(int *)(iVar7 + 0x10);
          if (iVar11 == 0) goto LAB_00029bab;
LAB_0002996d:
          *(int **)(iVar11 + 0x14) = piVar23;
        }
        else {
          *(int *)(iVar10 + 0x14) = iVar11;
          piVar23[4] = *(int *)(iVar7 + 0x10);
          iVar11 = *(int *)(iVar7 + 0x10);
          if (iVar11 != 0) goto LAB_0002996d;
LAB_00029bab:
          DAT_00093c44 = piVar23 + 4;
        }
        piVar27[5] = iVar7;
        iVar10 = 0;
        iVar11 = 0;
        *(int **)(iVar7 + 0x10) = piVar27;
        do {
          piVar27[0x12] = -2 - piVar27[0x12];
          iVar25 = piVar27[7];
          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {
            iVar11 = iVar25;
          }
        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));
        piVar27 = (int *)0x0;
        if (iVar10 != 0) {
          iVar25 = *(int *)(iVar7 + 0x1c);
          if (iVar25 == 0) {
            piVar27 = *(int **)(iVar7 + 0x14);
            if (piVar27 != (int *)0x0) {
              do {
                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&
                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;
                piVar27 = (int *)piVar27[5];
              } while (piVar27 != (int *)0x0);
              piVar27 = (int *)0x0;
            }
          }
          else {
LAB_000299ca:
            piVar27 = (int *)0x0;
            if (iVar25 != iVar10) {
              iVar7 = *(int *)(iVar11 + 0x10);
              iVar28 = *(int *)(iVar10 + 0xc);
              if (iVar7 == 0) {
                *(int *)(DAT_00093cb4 + 0x60) = iVar28;
              }
              else {
                *(int *)(iVar7 + 0xc) = iVar28;
                iVar28 = *(int *)(iVar10 + 0xc);
              }
              if (iVar28 == 0) {
                *(int *)(DAT_00093cb4 + 100) = iVar7;
              }
              else {
                *(int *)(iVar28 + 0x10) = iVar7;
              }
              iVar7 = *(int *)(iVar25 + 0xc);
              *(int *)(iVar10 + 0xc) = iVar7;
              if (iVar7 == 0) {
                *(int *)(DAT_00093cb4 + 100) = iVar10;
              }
              else {
                *(int *)(iVar7 + 0x10) = iVar10;
              }
              *(int *)(iVar11 + 0x10) = iVar25;
              piVar27 = (int *)0x0;
              *(int *)(iVar25 + 0xc) = iVar11;
            }
          }
        }
      }
      piVar24 = (int *)FUN_0001ddf0();
      iVar7 = *DAT_00093c40;
      *DAT_00093c40 = *(int *)*piVar32;
      iVar11 = *piVar24;
      *piVar32 = iVar11;
      if (iVar11 == 0) {
        DAT_000938ac = piVar32;
      }
      *piVar24 = iVar7;
      piVar23 = (int *)0x0;
      piVar26 = piVar27;
      piVar16 = DAT_00093c40;
      goto LAB_00028f8c;
    }
LAB_00029066:
    iVar7 = piVar24[2];
    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);
    FUN_00032ba0(uVar8,iVar7);
  }
  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;
  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);
joined_r0x000290b4:
    if (puVar15 != (undefined4 *)0x0) {
      do {
        if (puVar15[0x15] == 0) {
          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;
          iVar7 = FUN_0001f130();
          bVar37 = false;
          bVar38 = iVar7 == 0;
          if (bVar38) {
            pbVar3 = (byte *)*puVar15;
            iVar7 = 7;
            pbVar19 = pbVar3;
            pbVar33 = (byte *)"COMMON";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar37 = *pbVar19 < *pbVar33;
              bVar38 = *pbVar19 == *pbVar33;
              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;
              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;
            } while (bVar38);
            if ((!bVar37 && !bVar38) == bVar37) {
              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {
                if (DAT_000938c0 == 0) {
                  DAT_000938c0 = FUN_00023550(".bss",0,1);
                }
                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);
              }
            }
            else if (DAT_00093d9c == 1) {
              iVar7 = FUN_00023550("/DISCARD/",0,1);
              if ((*(int *)(iVar7 + 0x2c) == 0) &&
                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {
                uVar8 = FUN_000307b0(0,0);
                *(undefined4 *)(iVar7 + 0x2c) = uVar8;
              }
              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);
            }
            else {
              if (DAT_00093d9c == 3) {
                uVar8 = puVar15[0x2b];
                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_00032ba0(uVar14,puVar15,uVar8);
              }
              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {
                uVar8 = 0;
              }
              else {
                uVar8 = 0x17e;
              }
              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);
              if (iVar7 == 0) {
                iVar7 = FUN_00023550(pbVar3,uVar8,1);
                if ((*(int *)(iVar7 + 0x2c) == 0) &&
                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {
                  uVar8 = FUN_000307b0(0,0);
                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;
                }
                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);
              }
              if (DAT_00093d9c == 2) {
                uVar8 = *(undefined4 *)(iVar7 + 0x18);
                uVar14 = puVar15[0x2b];
                uVar20 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);
              }
            }
          }
          else {
            puVar15[0x15] = puVar17;
          }
        }
        puVar15 = (undefined4 *)puVar15[3];
        if (puVar15 == (undefined4 *)0x0) break;
      } while( true );
    }
  }
  bVar21 = DAT_00093c80 & 3;
  piVar24 = DAT_0009382c;
  piVar26 = DAT_00093c40;
  iVar7 = DAT_00093cb4;
  if (bVar21 != 2) {
    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);
    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");
    if (iVar7 == 0) {
      bVar21 = DAT_00093c80 & 3;
      piVar24 = DAT_0009382c;
      piVar26 = DAT_00093c40;
      iVar7 = DAT_00093cb4;
    }
    else {
      bVar21 = DAT_00093c80 & 3;
      if (DAT_00093db0 == 0) {
        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;
        piVar24 = DAT_0009382c;
        piVar26 = DAT_00093c40;
        iVar7 = DAT_00093cb4;
      }
      else {
        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;
        piVar24 = DAT_0009382c;
        piVar26 = DAT_00093c40;
        iVar7 = DAT_00093cb4;
      }
    }
  }
  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;
      piVar26 = (int *)piVar26[4]) {
    iVar7 = piVar26[5];
    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&
       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {
      piVar26[9] = *(int *)(iVar7 + 0x24);
    }
    piVar24 = DAT_0009382c;
    iVar7 = DAT_00093cb4;
  }
  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {
    piVar26 = piVar24 + DAT_00093828;
    do {
      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {
        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];
        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||
           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)
           ) {
          *(undefined1 *)(iVar11 + 0xc) = 1;
          *(undefined4 *)(iVar11 + 0x14) = 0;
          break;
        }
        piVar24 = piVar24 + 1;
        if (piVar24 == piVar26) goto LAB_00029327;
      }
      piVar24 = piVar24 + 1;
    } while (piVar24 != piVar26);
  }
LAB_00029327:
  if (bVar21 != 2) {
    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;
        puVar15 = (undefined4 *)puVar15[3]) {
      pcVar12 = (char *)*puVar15;
      sVar9 = strlen(pcVar12);
      pcVar13 = (char *)xmalloc(sVar9 + 10);
      sprintf(pcVar13,".startof.%s",pcVar12);
      FUN_0001ec30();
      builtin_strncpy(pcVar13 + 1,".size",5);
      FUN_0001ec30();
      free(pcVar13);
    }
  }
  FUN_00031450();
  piVar24 = (int *)0x0;
  local_64 = (void *)xmalloc(0x28);
  local_44 = 10;
  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
    local_6c = (int *)0x0;
    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {
            while( true ) {
              piVar24 = piVar23;
              if (piVar23 != (int *)0x0) goto LAB_000293ea;
              piVar27 = (int *)piVar27[4];
              if (piVar27 == (int *)0x0) break;
              piVar23 = (int *)piVar27[0xe];
            }
            piVar24 = (int *)0x0;
            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_00032ba0(uVar8);
          }
        }
        else {
          piVar24 = piVar23;
          piVar27 = (int *)piVar26[7];
          while (piVar27 != (int *)0x0) {
LAB_000293ea:
            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);
            uVar29 = local_44;
            if (iVar7 == 0) {
              if (local_44 <= local_6c) {
                uVar29 = local_44 * 2;
                local_64 = (void *)xrealloc(local_64,local_44 << 3);
              }
              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];
              local_6c = (int *)((int)local_6c + 1);
              piVar23[2] = 1;
            }
            piVar23 = (int *)*piVar23;
            local_44 = uVar29;
            piVar27 = piVar23;
          }
        }
      }
    }
    uVar8 = 0;
    if (puVar15[6] != 0) {
      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");
    }
    iVar7 = puVar15[5];
    uVar40 = 0;
    if (iVar7 != 0) {
      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");
      iVar7 = puVar15[5];
    }
    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,
                            puVar15[3],puVar15[4],local_6c,local_64);
    if (iVar7 == 0) {
      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_00032ba0(uVar8);
    }
  }
  free(local_64);
  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {
    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {
      piVar26 = (int *)piVar24[0xe];
joined_r0x0002951b:
      if (piVar26 != (int *)0x0) {
        do {
          bVar37 = false;
          bVar38 = piVar26[2] == 0;
          if (bVar38) {
            pbVar3 = (byte *)piVar26[1];
            iVar7 = 5;
            pbVar19 = pbVar3;
            pbVar33 = (byte *)0x3f35d;
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar37 = *pbVar19 < *pbVar33;
              bVar38 = *pbVar19 == *pbVar33;
              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;
              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;
            } while (bVar38);
            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;
          }
          piVar26 = (int *)*piVar26;
          if (piVar26 == (int *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {
    local_20[0] = (char *)0x0;
    FUN_000261d0();
    if (local_20[0] == (char *)0x0) {
      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;
    }
  }
  FUN_000269b0(0,1 < DAT_00093c98);
  FUN_00031430();
  iVar7 = DAT_00093cb4;
  uVar29 = DAT_0009386c;
  if (DAT_00093828 != 0) {
    piVar24 = DAT_0009382c + DAT_00093828;
    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;
    piVar26 = DAT_0009382c;
    do {
      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {
        pcVar12 = *(char **)(iVar11 + 4);
        local_5c._0_1_ = (byte)uVar29;
        if (*pcVar12 != '.') {
          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);
          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);
          *(int *)(iVar11 + 0x14) = iVar10;
          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {
            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);
            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |
                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);
            uVar35 = uVar34;
            if ((uVar29 & 0x20) != 0) {
              uVar35 = 0;
              uVar30 = uVar34;
            }
            *(uint *)(iVar11 + 0x18) = uVar30;
            *(uint *)(iVar11 + 0x1c) = uVar35;
          }
          break;
        }
        if (pcVar12[2] != 'i') break;
        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);
        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);
        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |
                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);
        uVar35 = uVar34;
        if ((uVar29 & 0x20) != 0) {
          uVar35 = 0;
          uVar30 = uVar34;
        }
        piVar26 = piVar26 + 1;
        *(uint *)(iVar11 + 0x18) = uVar30;
        *(uint *)(iVar11 + 0x1c) = uVar35;
        *(undefined **)(iVar11 + 0x14) = puVar17;
        if (piVar24 == piVar26) goto LAB_000296b8;
      }
      piVar26 = piVar26 + 1;
    } while (piVar24 != piVar26);
  }
LAB_000296b8:
  FUN_00025190(4);
  FUN_00031490();
  FUN_00031320();
  puVar15 = DAT_0009383c;
  if (DAT_00093d38 != '\0') {
    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);
    uVar35 = iVar7 - 1U >> 5 & 1;
    bVar39 = (byte)(iVar7 - 1U);
    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);
    iVar7 = uVar29 * 2;
    uVar30 = iVar7 - 1;
    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);
    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);
    if (puVar15 != (undefined4 *)0x0) {
      do {
        if ((*(byte *)(puVar15 + 5) & 1) != 0) {
          uVar35 = puVar15[7];
          uVar34 = puVar15[0xb];
          uVar31 = uVar30 & uVar35 + uVar34;
          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);
          if ((uVar36 == 0 && uVar31 == 0) ||
             (uVar18 = uVar29 & puVar15[8],
             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {
            uVar35 = puVar15[9];
            uVar31 = uVar30 & uVar34 + uVar35;
            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;
            if ((uVar34 == 0 && uVar31 == 0) ||
               (uVar36 = puVar15[10] & uVar29,
               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))
            goto LAB_0002a1a0;
            uVar8 = *puVar15;
            pcVar12 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar8 = *puVar15;
            pcVar12 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar14 = dcgettext(0,pcVar12,5);
          FUN_00032ba0(uVar14,uVar8);
        }
LAB_0002a1a0:
        puVar15 = (undefined4 *)puVar15[3];
      } while (puVar15 != (undefined4 *)0x0);
    }
    puVar15 = DAT_0009383c;
    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {
      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);
      uVar29 = 0;
      iVar7 = *(int *)(DAT_00093cb4 + 0x60);
      if (iVar7 != 0) {
        do {
          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))
             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {
            iVar11 = uVar29 * 2;
            uVar29 = uVar29 + 1;
            piVar24[iVar11] = iVar7;
            (piVar24 + iVar11)[1] = 0;
          }
          iVar7 = *(int *)(iVar7 + 0xc);
        } while (iVar7 != 0);
        if (1 < uVar29) {
          qsort(piVar24,uVar29,8,FUN_0001def0);
          local_4c = (undefined4 *)0x0;
          local_48 = 0;
          local_5c = 0;
          local_58 = 0;
          piVar26 = piVar24;
          puVar15 = (undefined4 *)0x0;
          do {
            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,
                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,
                  (*(byte *)(puVar22 + 5) & 2) != 0) {
              puVar4 = (undefined4 *)puVar22[9];
              uVar30 = puVar22[10];
              bVar39 = (byte)DAT_0009386c & 0x1f;
              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);
              uVar31 = uVar35;
              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;
              if ((DAT_0009386c & 0x20) != 0) {
                uVar31 = 0;
                uVar34 = uVar35;
              }
              uVar35 = uVar34 + ((int)puVar4 - 1U);
              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +
                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);
              puVar6 = puVar22;
              if (puVar15 == (undefined4 *)0x0) break;
              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||
                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {
                uVar8 = *puVar22;
                uVar14 = *puVar15;
                uVar20 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,
                             local_5c,local_58);
                piVar26[1] = 1;
                break;
              }
              piVar26 = piVar26 + 2;
              puVar15 = puVar22;
              local_5c = uVar35;
              local_58 = uVar34;
              local_4c = puVar4;
              local_48 = uVar30;
              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;
            }
            local_48 = uVar30;
            local_4c = puVar4;
            local_58 = uVar34;
            local_5c = uVar35;
            puVar15 = puVar6;
            piVar26 = piVar26 + 2;
          } while (piVar24 + uVar29 * 2 != piVar26);
LAB_0002a3c8:
          qsort(piVar24,uVar29,8,FUN_0001df40);
          puVar15 = (undefined4 *)*piVar24;
          uVar36 = 1;
          uVar30 = puVar15[8];
          uVar35 = puVar15[7];
          uVar34 = uVar30;
          uVar31 = uVar35;
          do {
            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);
            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);
            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;
            uVar36 = uVar36 + 1;
            uVar34 = uVar5;
            uVar31 = uVar18;
          } while (uVar36 != uVar29);
          bVar39 = (byte)DAT_0009386c & 0x1f;
          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);
          uVar31 = uVar36;
          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;
          if ((DAT_0009386c & 0x20) != 0) {
            uVar31 = 0;
            uVar34 = uVar36;
          }
          local_6c = (int *)0x0;
          uVar36 = uVar34 + (uVar35 - 1);
          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);
          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,
                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)
          {
            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];
            uVar35 = puVar15[7];
            uVar30 = puVar15[8];
            bVar39 = (byte)DAT_0009386c & 0x1f;
            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);
            uVar31 = uVar36;
            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;
            if ((DAT_0009386c & 0x20) != 0) {
              uVar31 = 0;
              uVar34 = uVar36;
            }
            uVar36 = uVar34 + (uVar35 - 1);
            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);
            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&
               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||
                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {
              uVar8 = *puVar15;
              uVar14 = *local_4c;
              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,
                           local_5c,local_58);
            }
          }
LAB_0002a9b9:
          free(piVar24);
          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;
              puVar22 = (undefined4 *)puVar22[2]) {
            if (puVar22[0xe] != 0) {
              uVar8 = *puVar22;
              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);
              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);
              FUN_00032ba0(uVar14,uVar8,iVar7);
            }
          }
          goto joined_r0x000296eb;
        }
      }
      free(piVar24);
      puVar15 = DAT_0009383c;
    }
  }
joined_r0x000296eb:
  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {
    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);
    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {
      uVar8 = *puVar15;
      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_00032ba0(uVar14,uVar8);
    }
  }
  iVar7 = DAT_00093c1c;
  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {
    iVar7 = 1;
  }
  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {
    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_00032ba0(uVar8);
  }
  if (DAT_000937f8 == (undefined *)0x0) {
    DAT_000937f8 = PTR_s_start_00093340;
    iVar7 = 0;
  }
  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);
  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {
    iVar10 = *(int *)(iVar11 + 0x14);
    iVar25 = *(int *)(iVar10 + 0x54);
    if (iVar25 != 0) {
      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);
      iVar7 = bfd_set_start_address
                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),
                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +
                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +
                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));
      if (iVar7 != 0) {
        return;
      }
      pcVar12 = "%F%P: %s: can\'t set start address\n";
      goto LAB_00029b59;
    }
  }
  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);
  if (*local_20[0] != '\0') {
    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);
    puVar17 = DAT_000937f8;
    if (iVar11 == 0) {
      if (iVar7 == 0) {
        return;
      }
      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_00029b59:
      puVar17 = DAT_000937f8;
      uVar8 = dcgettext(0,pcVar12,5);
      FUN_00032ba0(uVar8,puVar17);
      return;
    }
    uVar8 = *(undefined4 *)(iVar11 + 0x1c);
    uVar14 = *(undefined4 *)(iVar11 + 0x20);
    uVar40 = *(undefined8 *)(iVar11 + 0x1c);
    if (iVar7 != 0) {
      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);
      uVar40 = *(undefined8 *)(iVar11 + 0x1c);
    }
  }
  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);
  if (iVar7 != 0) {
    return;
  }
  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_00032ba0(uVar8);
  return;
LAB_00028dd0:
  uVar8 = *puVar15;
  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_00032ba0(uVar14,uVar8);
  puVar15 = (undefined4 *)puVar15[2];
  goto joined_r0x00028c51;
code_r0x000290dc:
  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);
  puVar15 = (undefined4 *)puVar15[3];
  goto joined_r0x000290b4;
code_r0x00029557:
  iVar7 = piVar24[6];
  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_00032ba0(uVar8,iVar7,pbVar3);
  piVar26 = (int *)*piVar26;
  goto joined_r0x0002951b;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015a30
ADD EBX,0x6a7e7
SUB ESP,0x6c
LEA EAX,[EBX + 0xc80]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [EAX + 0x94]
TEST EAX,EAX
JZ 0x0002883b
CALL 0x0001ea90
LEA ESI,[EBX + 0xdf4]
SUB ESP,0x8
MOV EAX,dword ptr [ESI]
PUSH dword ptr [EBX + 0x8a8]
MOV dword ptr [EBX + 0x8b0],EAX
LEA EAX,[EBX + 0xfff91b50]
PUSH EAX
CALL 0x00021b90
CALL 0x0001f3d0
CALL 0x000314e0
MOV EDI,dword ptr [EBX + 0x7f4]
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00028886
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI + 0x4]
CALL 0x0001e860
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x00028878
CALL 0x00014b50
TEST EAX,EAX
JZ 0x0002a070
MOV EAX,dword ptr [ESI]
XOR EDX,EDX
ADD dword ptr [EBX + 0x7e0],0x1
MOV dword ptr [EBX + 0x8b0],EAX
MOV EAX,dword ptr [EBX + 0x8a8]
CALL 0x00026280
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x1],0x2
JNZ 0x00029da0
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EAX + 0x48]
TEST ESI,ESI
JZ 0x000288df
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbad02]
PUSH 0x1c67
PUSH EAX
CALL 0x00032bf0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [EBX + 0x7f8]
LEA EAX,[EBX + 0x7f4]
MOV dword ptr [ECX + 0x48],EAX
TEST EBP,EBP
JZ 0x0002a748
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x50]
TEST EAX,EAX
JZ 0x0002890a
CALL 0x00021990
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x54]
TEST EAX,EAX
JZ 0x0002891a
CALL 0x00021990
CALL 0x000313f0
LEA EAX,[EBX + 0xd80]
MOV EDI,dword ptr [EAX + 0x50]
MOV dword ptr [ESP + 0x20],EAX
TEST EDI,EDI
JZ 0x000289e9
MOV ESI,dword ptr [EBX + 0x870]
TEST ESI,ESI
JZ 0x000289e9
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbacc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032c30
MOV ESI,dword ptr [EBX + 0x870]
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000289e9
LEA EAX,[EBX + 0xfffbae8a]
LEA EBP,[EBX + 0xfffbb11f]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffbb11a]
MOV dword ptr [ESP + 0x18],EAX
LEA ESI,[ESI]
SUB ESP,0x8
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESP + 0x1c]
CALL 0x00032c30
POP ECX
PUSH dword ptr [ESI + 0x4]
CALL 0x00014700
ADD ESP,0x10
MOV EDI,EAX
CMP EAX,0x1c
JA 0x00029bc0
NOP
CALL 0x00031cb0
ADD EDI,0x1
CMP EDI,0x1e
JNZ 0x000289b0
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JZ 0x000289d4
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL 0x00032c30
ADD ESP,0x10
SUB ESP,0x8
PUSH dword ptr [ESI + 0xc]
PUSH EBP
CALL 0x00032c30
MOV ESI,dword ptr [ESI]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00028988
CALL 0x00014ba0
LEA EAX,[EBX + 0xd20]
MOV EBP,dword ptr [EBX + 0x7fc]
MOV dword ptr [ESP + 0x3c],EAX
LEA EAX,[EBX + 0xfffbbbc4]
MOV dword ptr [ESP + 0x28],EAX
TEST EBP,EBP
JZ 0x00028acb
TEST byte ptr [EBP + 0x25],0x20
JNZ 0x00028ac0
SUB ESP,0x4
MOV ESI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ESP + 0x40]
PUSH dword ptr [EAX + 0x1c]
MOV EDI,dword ptr [ESP + 0x14]
PUSH dword ptr [EDI + 0x34]
PUSH ESI
CALL 0x00014460
MOV dword ptr [ESP + 0x20],EAX
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0x28],AL
AND EAX,0x3
ADD ESP,0x10
CMP AL,0x2
JZ 0x00028cf0
TEST byte ptr [EDI + 0x3],0x8
JNZ 0x00028cf0
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00028d68
MOV EAX,dword ptr [ESI + 0x68]
TEST EAX,EAX
JZ 0x00028ac0
MOV EAX,dword ptr [ESP + 0x3c]
XOR EDI,EDI
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00029c78
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ECX + 0x34]
MOV EAX,dword ptr [EAX + 0x4]
PUSH ECX
PUSH ESI
CALL dword ptr [EAX + 0xac]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00029904
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JNZ 0x000298e8
SUB ESP,0xc
PUSH EDI
CALL 0x00014590
ADD ESP,0x10
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JNZ 0x00028a10
MOV EAX,dword ptr [ESP + 0x3c]
MOV EDX,dword ptr [EAX + 0x54]
TEST EDX,EDX
JZ 0x00028c0e
MOV ESI,dword ptr [EBX + 0x7fc]
XOR EDI,EDI
TEST ESI,ESI
JZ 0x00028bc4
LEA EAX,[EBX + 0xfffbb126]
MOV EBP,ESI
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffbbbfc]
MOV dword ptr [ESP + 0x30],EAX
JMP 0x00028b13
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JZ 0x00028bc4
SUB ESP,0x8
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [EBP + 0x10]
CALL 0x000144e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00028b08
MOV EDX,dword ptr [EAX + 0x2c]
SUB ESP,0xc
MOV ECX,dword ptr [EAX + 0x30]
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP + 0x44],EDX
PUSH EDX
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x3c],ECX
CALL 0x00014c78
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x2c]
MOV ECX,dword ptr [ESP + 0x30]
MOV ESI,EAX
PUSH ECX
PUSH EDX
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [EBP + 0x10]
CALL 0x000142c0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00029bd0
MOV EAX,dword ptr [ESP + 0x38]
ADD EAX,ESI
CMP ESI,EAX
JNC 0x00028bae
MOV dword ptr [ESP + 0x38],EBP
MOV EBP,EDI
MOV EDI,EAX
LEA ESI,[ESI]
PUSH 0x0
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x00028150
MOV dword ptr [ESP],ESI
MOV EBP,EAX
CALL 0x00014700
ADD ESP,0x10
LEA ESI,[ESI + EAX*0x1 + 0x1]
CMP ESI,EDI
JC 0x00028b88
MOV EDI,EBP
MOV EBP,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EBP + 0x18]
OR dword ptr [EAX + 0x14],0x208000
TEST EBP,EBP
JNZ 0x00028b13
LEA EAX,[EBX + 0xfffbaff8]
PUSH 0x0
PUSH 0x0
PUSH EAX
PUSH 0x0
CALL 0x00028150
MOV ESI,EAX
POP EAX
POP EDX
PUSH 0x3c
PUSH 0x1
CALL 0x00014be0
ADD ESP,0xc
LEA EDX,[EBX + 0xfff8bcc0]
MOV dword ptr [EAX + 0xc],EDI
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 + 0x48]
PUSH dword ptr [EAX + 0x54]
CALL 0x000283d0
ADD ESP,0x10
CALL 0x0002ba20
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x0002a5b0
SUB ESP,0xc
LEA EDI,[EBX + 0xfffbbc2c]
PUSH 0x1
CALL 0x00025190
LEA EAX,[EBX + 0xe20]
ADD ESP,0x10
MOV ESI,dword ptr [EBX + 0x84c]
MOV dword ptr [ESP + 0x40],EAX
LEA EAX,[EBX + 0xfffbbc58]
MOV dword ptr [ESP + 0x10],EAX
TEST ESI,ESI
JNZ 0x00028cab
JMP 0x00028e00
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [ESI + 0x28],EDX
MOV dword ptr [ESI + 0x10],EAX
MOV dword ptr [ESI + 0x14],EDX
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,dword ptr [ESI + 0x20]
TEST EAX,EAX
JZ 0x00028ca0
SUB ESP,0xc
PUSH EAX
CALL 0x00030910
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [EAX + 0x24]
TEST EBP,EBP
JZ 0x00028dd0
MOV EDX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x14]
MOV dword ptr [ESI + 0x1c],EDX
MOV dword ptr [ESI + 0x18],EAX
MOV ESI,dword ptr [ESI + 0x8]
TEST ESI,ESI
JZ 0x00028e00
MOV EAX,dword ptr [ESI + 0xc]
TEST EAX,EAX
JZ 0x00028c72
SUB ESP,0xc
PUSH EAX
CALL 0x00030910
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [EAX + 0x24]
TEST EBP,EBP
JNZ 0x00028c60
SUB ESP,0x4
MOV EBP,dword ptr [ESI]
PUSH 0x5
PUSH EDI
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00028c72
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00029928
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESI + 0x4]
MOV EDX,dword ptr [ECX + 0x34]
MOV ECX,dword ptr [EDX + 0x4]
MOV EDI,dword ptr [ECX + 0x4]
CMP dword ptr [EAX + 0x4],EDI
JZ 0x00028a63
TEST byte ptr [ESI + 0x28],0x20
JZ 0x00028a63
MOV ECX,dword ptr [ECX]
SUB ESP,0x4
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x3c],EDX
LEA EAX,[EBX + 0xfffbbb10]
MOV dword ptr [ESP + 0x1c],ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV EDX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP],EDX
PUSH ECX
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JNZ 0x00028a63
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00028ac0
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX + 0x34]
CALL 0x00014570
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x20],EAX
CALL 0x00014570
ADD ESP,0xc
MOV EDI,EAX
LEA EAX,[EBX + 0xfffbbb78]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV EDX,dword ptr [ESP + 0x20]
PUSH EDX
PUSH ESI
PUSH EDI
PUSH EAX
CALL 0x00032ba0
MOV EBP,dword ptr [EBP + 0x18]
ADD ESP,0x20
TEST EBP,EBP
JNZ 0x00028a10
JMP 0x00028acb
SUB ESP,0x4
MOV EBP,dword ptr [ESI]
PUSH 0x5
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00032ba0
MOV ESI,dword ptr [ESI + 0x8]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00028cab
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x40]
MOV dword ptr [EAX],0x0
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x7],0x20
JNZ 0x00028ea9
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x00029b78
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX + 0x2c]
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x20]
TEST EDX,EDX
JZ 0x0002a860
CMP EDX,0x2
JZ 0x0002aa38
MOV dword ptr [ESP + 0x5c],0x0
LEA ESI,[EBX + 0xfff8d720]
LEA EDI,[ESP + 0x5c]
JMP 0x00028e6f
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x20]
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00014840
MOV EAX,dword ptr [ESP + 0x6c]
ADD EAX,0x1
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
CMP EAX,0x4
JBE 0x00028e68
MOV dword ptr [ESP + 0x5c],0xffffffff
SUB ESP,0x4
PUSH EDI
PUSH ESI
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX + 0x20]
CALL 0x00014840
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0x8a8]
CALL 0x00025db0
MOV EAX,dword ptr [ESP + 0xc]
MOVZX ESI,byte ptr [EAX]
MOV EAX,ESI
AND EAX,0x3
CMP AL,0x2
JZ 0x00029cc0
AND ESI,0x40
JZ 0x00028ee5
MOV ECX,dword ptr [ESP + 0xc]
SUB ESP,0x8
MOV EAX,dword ptr [ECX + 0x34]
MOV EDX,dword ptr [EAX + 0x4]
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0x184]
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x6],0x20
JNZ 0x00029a88
CALL 0x00031410
MOV EAX,dword ptr [EBX + 0x8a8]
XOR ESI,ESI
CALL 0x0001e100
MOV EAX,dword ptr [EBX + 0x8a8]
XOR ECX,ECX
XOR EDX,EDX
ADD dword ptr [EBX + 0x7e0],0x1
CALL 0x00025ed0
LEA EAX,[EBX + 0xc40]
XOR ECX,ECX
MOV EBP,ECX
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x30],EAX
MOV EDX,dword ptr [EDI]
MOV EAX,EDX
TEST EDX,EDX
JZ 0x00028f94
LEA ESI,[ESI]
NOP
MOV ECX,dword ptr [EDX + 0x4]
TEST ECX,ECX
JNZ 0x00028ff0
MOV ECX,EDX
TEST EBP,EBP
JZ 0x00028f77
CMP EDX,dword ptr [EBP + 0x10]
JZ 0x00028f77
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x8
LEA EDX,[EBX + 0xfffbad02]
MOV dword ptr [ESP + 0x18],EAX
PUSH 0xea0
PUSH EDX
CALL 0x00032bf0
ADD ESP,0x10
MOV EDX,dword ptr [EDI]
MOV ECX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x10]
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 0x00028fe0
MOV EDI,EAX
MOV EDX,dword ptr [EDI]
MOV EAX,EDX
TEST EDX,EDX
JNZ 0x00028f38
MOV ECX,EBP
TEST ESI,ESI
JZ 0x00029088
MOV EAX,0xfffffffe
SUB EAX,dword ptr [ESI + 0x48]
MOV dword ptr [ESI + 0x48],EAX
CMP EBP,ESI
JZ 0x00029088
MOV EDX,0xfffffffe
JMP 0x00028fd0
MOV EAX,EDX
SUB EAX,dword ptr [ESI + 0x48]
MOV dword ptr [ESI + 0x48],EAX
CMP ECX,ESI
JZ 0x00029088
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00028fc0
JMP 0x00029088
MOV ESI,ECX
MOV EDI,EAX
JMP 0x00028f8c
CMP ECX,0xe
JNZ 0x00028f8a
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDX + 0x8]
MOV dword ptr [ESP + 0x20],EDX
CALL 0x00023550
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x00029066
MOV ECX,dword ptr [EDX + 0xc]
TEST ECX,ECX
JNZ 0x0002905f
TEST EBP,EBP
JNZ 0x00029948
CALL 0x0001ddf0
MOV EBP,dword ptr [EDI]
MOV ECX,dword ptr [ESP + 0x30]
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 0x00029c98
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x30]
XOR EBP,EBP
MOV EAX,dword ptr [EAX]
MOV EDI,EAX
JMP 0x00028f8c
MOV ECX,dword ptr [EAX + 0x48]
TEST ECX,ECX
JNS 0x0002901a
MOV EAX,dword ptr [EAX + 0x14]
TEST EAX,EAX
JNZ 0x00029058
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbc000]
MOV ESI,dword ptr [EDX + 0x8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0xffffffb4]
MOV ECX,dword ptr [EBX + 0x7fc]
ADD EAX,0x180
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x38],EAX
TEST ECX,ECX
JZ 0x0002910f
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x10]
MOV EBP,dword ptr [EAX + 0x60]
TEST EBP,EBP
JNZ 0x000290c7
JMP 0x00029100
MOV EBP,dword ptr [EBP + 0xc]
TEST EBP,EBP
JZ 0x00029100
MOV EAX,dword ptr [EBP + 0x54]
TEST EAX,EAX
JNZ 0x000290c0
MOV EAX,dword ptr [ESP + 0x10]
TEST byte ptr [EAX + 0x24],0x10
JZ 0x000291d0
MOV EAX,dword ptr [EAX + 0x10]
SUB ESP,0x8
MOV EAX,dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + 0x14]
PUSH EBP
CALL dword ptr [EAX + 0x170]
MOV EBP,dword ptr [EBP + 0xc]
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x000290c7
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x18]
MOV dword ptr [ESP + 0x10],EAX
TEST EAX,EAX
JNZ 0x000290a8
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV ECX,EAX
MOV byte ptr [ESP + 0x10],AL
AND ECX,0x3
CMP CL,0x2
JZ 0x0002917b
MOV EDI,dword ptr [ESP + 0xc]
SUB ESP,0x8
MOV EAX,dword ptr [EDI + 0x34]
MOV EDX,dword ptr [EAX + 0x4]
PUSH EDI
PUSH EAX
CALL dword ptr [EDX + 0x18c]
POP EBP
POP EAX
LEA EAX,[EBX + 0xfffee4ec]
PUSH EAX
PUSH dword ptr [EDI + 0x34]
CALL 0x000144e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002a848
MOV ECX,dword ptr [ESP + 0xc]
MOV EDI,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [EAX + 0x14]
MOVZX ECX,byte ptr [ECX]
MOV ESI,dword ptr [EDI + 0x30]
MOV byte ptr [ESP + 0x10],CL
AND ECX,0x3
TEST ESI,ESI
JZ 0x0002a7a0
OR EDX,0x8
MOV dword ptr [EAX + 0x14],EDX
MOV EAX,dword ptr [ESP + 0x30]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JNZ 0x0002919b
JMP 0x00029318
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JZ 0x00029318
MOV EDX,dword ptr [EAX + 0x14]
TEST EDX,EDX
JZ 0x00029190
MOV EBP,dword ptr [EAX + 0x24]
TEST EBP,EBP
JNZ 0x00029190
MOV EDI,dword ptr [EAX + 0x30]
TEST EDI,EDI
JNZ 0x00029190
MOV ESI,dword ptr [EAX + 0x2c]
TEST ESI,ESI
JNZ 0x00029190
MOV EDI,dword ptr [EDX + 0x20]
CMP dword ptr [EAX + 0x20],EDI
JNZ 0x00029190
MOV EDX,dword ptr [EDX + 0x24]
MOV dword ptr [EAX + 0x24],EDX
JMP 0x00029190
MOV EAX,dword ptr [EBP + 0x14]
CALL 0x0001f130
TEST EAX,EAX
JZ 0x000291f0
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EBP + 0x54],EAX
JMP 0x000290c0
MOV ESI,dword ptr [EBP]
MOV ECX,0x7
LEA EDI,[EBX + 0xfffbb09d]
MOV dword ptr [ESP + 0x18],ESI
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00029250
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x18],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x000292d8
MOV EAX,dword ptr [EBX + 0x8c0]
TEST EAX,EAX
JZ 0x000292f4
PUSH EAX
ADD EAX,0x8
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x000243d0
ADD ESP,0x10
JMP 0x000290c0
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x1c]
CMP EAX,0x1
JZ 0x0002a6f0
CMP EAX,0x3
JZ 0x0002a770
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x38]
TEST EAX,EAX
JZ 0x00029ca8
MOV EDI,0x17e
SUB ESP,0x4
PUSH EDI
PUSH dword ptr [ESP + 0x20]
PUSH EBP
CALL 0x00031560
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0002a7e0
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [EAX + 0x1c],0x2
JNZ 0x000290c0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbcbc]
MOV EDI,dword ptr [ESI + 0x18]
MOV ESI,dword ptr [EBP + 0xac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
PUSH EDI
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x20
JMP 0x000290c0
MOV EAX,dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [EAX]
TEST EAX,EAX
JZ 0x000290c0
MOV EAX,dword ptr [EBX + 0x8c0]
TEST EAX,EAX
JNZ 0x00029231
SUB ESP,0x4
LEA EAX,[EBX + 0xfffee4d3]
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL 0x00023550
ADD ESP,0x10
MOV dword ptr [EBX + 0x8c0],EAX
JMP 0x00029231
MOV EAX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00029d10
CMP CL,0x2
JNZ 0x00029bf8
CALL 0x00031450
SUB ESP,0xc
XOR EBP,EBP
PUSH 0x28
CALL 0x00014c78
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xc38]
ADD ESP,0x10
MOV EDI,dword ptr [EAX]
LEA EAX,[EBX + 0xfffbbfd8]
MOV dword ptr [ESP + 0x38],0xa
MOV dword ptr [ESP + 0x44],EAX
TEST EDI,EDI
JZ 0x000294d7
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x10],0x0
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JZ 0x0002944b
MOV dword ptr [ESP + 0x20],EDI
LEA ESI,[ESI]
MOV ECX,dword ptr [ESI + 0x48]
TEST ECX,ECX
JS 0x0002943c
MOV EDI,dword ptr [ESI + 0x38]
TEST EDI,EDI
JZ 0x000297f0
MOV EDX,dword ptr [ESI + 0x1c]
MOV EBP,EDI
TEST EDX,EDX
JZ 0x0002943c
MOV EBP,EDI
MOV dword ptr [ESP + 0x28],EDI
MOV EDI,ESI
MOV ESI,EBP
MOV EBP,dword ptr [ESP + 0x38]
JMP 0x000293ea
MOV ECX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EDI + 0x1c]
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EDX + ECX*0x4],EAX
ADD ECX,0x1
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESI + 0x8],0x1
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JZ 0x00029430
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [ESI + 0x4]
CALL 0x000140c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000293e4
CMP dword ptr [ESP + 0x10],EBP
JC 0x000293c8
LEA EAX,[EBP + EBP*0x1]
SUB ESP,0x8
SHL EBP,0x3
MOV dword ptr [ESP + 0x40],EAX
PUSH EBP
PUSH dword ptr [ESP + 0x24]
CALL 0x000143c0
MOV dword ptr [ESP + 0x28],EAX
ADD ESP,0x10
MOV EBP,dword ptr [ESP + 0x38]
JMP 0x000293c8
MOV ESI,EDI
MOV EDI,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x38],EBP
MOV EBP,EDI
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00029390
MOV EDI,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EDI + 0x18]
XOR ESI,ESI
TEST EAX,EAX
JZ 0x0002946a
LEA EDX,[EBX + 0xfffbb13b]
PUSH EDX
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL 0x00030fd0
ADD ESP,0x10
MOV ESI,EAX
MOV ECX,dword ptr [EDI + 0x14]
XOR EAX,EAX
XOR EDX,EDX
TEST ECX,ECX
JZ 0x0002948c
LEA EAX,[EBX + 0xfffbb146]
PUSH EAX
PUSH 0x0
PUSH 0x0
PUSH ECX
CALL 0x00030fd0
MOV ECX,dword ptr [EDI + 0x14]
ADD ESP,0x10
SUB ESP,0x4
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EDI + 0x10]
PUSH dword ptr [EDI + 0xc]
PUSH EDX
MOV EDX,dword ptr [EDI + 0x18]
PUSH EAX
XOR EAX,EAX
TEST ECX,ECX
SETNZ AL
PUSH EAX
XOR EAX,EAX
TEST EDX,EDX
SETNZ AL
PUSH ESI
PUSH EAX
PUSH dword ptr [EDI + 0x8]
MOV EAX,dword ptr [ESP + 0x38]
PUSH dword ptr [EAX + 0x34]
CALL 0x00014690
ADD ESP,0x30
TEST EAX,EAX
JZ 0x00029870
MOV EDI,dword ptr [EDI]
TEST EDI,EDI
JNZ 0x00029370
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL 0x00014c60
MOV EAX,dword ptr [ESP + 0x40]
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0xfffac35d]
MOV dword ptr [ESP + 0x20],EAX
MOV EBP,EDX
TEST EDX,EDX
JZ 0x0002959f
MOV ESI,dword ptr [EBP + 0x48]
TEST ESI,ESI
JS 0x00029594
MOV ECX,dword ptr [EBP + 0x1c]
TEST ECX,ECX
JZ 0x00029594
MOV EDX,dword ptr [EBP + 0x38]
TEST EDX,EDX
JZ 0x00029594
LEA EAX,[EBX + 0xfffbbd2c]
MOV dword ptr [ESP + 0x10],EBP
MOV EBP,EDX
MOV dword ptr [ESP + 0x38],EAX
JMP 0x00029537
MOV EBP,dword ptr [EBP]
TEST EBP,EBP
JZ 0x00029590
MOV EDX,dword ptr [EBP + 0x8]
TEST EDX,EDX
JNZ 0x00029530
MOV EDX,dword ptr [EBP + 0x4]
MOV EDI,dword ptr [ESP + 0x20]
MOV ECX,0x5
MOV ESI,EDX
CMPSB.REPE ES:EDI,ESI
SETA AL
SBB AL,0x0
TEST AL,AL
JZ 0x00029530
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x18],EDX
SUB ESP,0x4
MOV ESI,dword ptr [EAX + 0x18]
PUSH 0x5
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x1c]
PUSH EDX
PUSH ESI
PUSH EAX
CALL 0x00032ba0
MOV EBP,dword ptr [EBP]
ADD ESP,0x10
TEST EBP,EBP
JNZ 0x00029537
LEA ESI,[ESI]
NOP
MOV EBP,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [EBP + 0x10]
TEST EBP,EBP
JNZ 0x00029500
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x3],0x10
JNZ 0x00029a40
SUB ESP,0x8
MOV EAX,dword ptr [ESP + 0x14]
CMP dword ptr [EAX + 0x18],0x1
SETA AL
MOVZX EAX,AL
PUSH EAX
PUSH 0x0
CALL 0x000269b0
CALL 0x00031430
MOV EDX,dword ptr [EBX + 0x828]
ADD ESP,0x10
TEST EDX,EDX
JZ 0x000296b8
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x34]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EBX + 0x86c]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [EBX + 0x82c]
LEA EBP,[EAX + EDX*0x4]
MOV EDX,dword ptr [EBX + 0xffffffb4]
LEA ECX,[EDX + 0x180]
MOV EDX,EAX
MOV dword ptr [ESP + 0x38],ECX
JMP 0x0002965f
MOV ECX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [ECX + 0x4]
XOR ECX,ECX
CMP byte ptr [ESI + 0x18],0x0
MOV ESI,dword ptr [EAX + 0x14]
SETNZ CL
MOV EDI,ECX
MOV ESI,dword ptr [ESI + 0x54]
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [EAX + 0x14],ESI
CMP byte ptr [ECX + EDI*0x1 + 0x4],0x6f
JNZ 0x00029658
MOV EDI,dword ptr [ESI + 0x30]
MOVZX ECX,byte ptr [ESP + 0x20]
MOV ESI,dword ptr [ESI + 0x2c]
SHRD ESI,EDI,CL
SHR EDI,CL
TEST CL,0x20
JZ 0x0002964f
MOV ESI,EDI
XOR EDI,EDI
MOV dword ptr [EAX + 0x18],ESI
MOV dword ptr [EAX + 0x1c],EDI
LEA ESI,[ESI]
ADD EDX,0x4
CMP EBP,EDX
JZ 0x000296b8
MOV EAX,dword ptr [EDX]
MOVZX ECX,word ptr [EAX + 0xc]
AND CX,0x8ff
CMP CX,0x3
JNZ 0x00029658
MOV ECX,dword ptr [EAX + 0x4]
CMP byte ptr [ECX],0x2e
MOV dword ptr [ESP + 0x10],ECX
JNZ 0x00029610
CMP byte ptr [ECX + 0x2],0x69
JNZ 0x00029658
MOV ECX,dword ptr [EAX + 0x14]
MOV EDI,dword ptr [ECX + 0x30]
MOV ESI,dword ptr [ECX + 0x2c]
MOVZX ECX,byte ptr [ESP + 0x20]
SHRD ESI,EDI,CL
SHR EDI,CL
TEST CL,0x20
JZ 0x0002969e
MOV ESI,EDI
XOR EDI,EDI
MOV ECX,dword ptr [ESP + 0x38]
ADD EDX,0x4
MOV dword ptr [EAX + 0x18],ESI
MOV dword ptr [EAX + 0x1c],EDI
MOV dword ptr [EAX + 0x14],ECX
CMP EBP,EDX
JNZ 0x0002965f
LEA ESI,[ESI]
SUB ESP,0xc
PUSH 0x4
CALL 0x00025190
CALL 0x00031490
CALL 0x00031320
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
CMP byte ptr [EAX + 0x18],0x0
JNZ 0x0002a098
MOV EDI,dword ptr [EBX + 0x83c]
LEA ESI,[EBX + 0xfffbbea4]
TEST EDI,EDI
JZ 0x0002973b
LEA ESI,[ESI]
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI]
MOV EAX,dword ptr [ESP + 0x28]
PUSH dword ptr [EAX + 0x20]
CALL 0x00014530
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00029719
MOVZX EAX,byte ptr [EAX + 0xc]
SUB EAX,0x3
CMP AL,0x1
JBE 0x00029734
SUB ESP,0x4
MOV EBP,dword ptr [EDI]
PUSH 0x5
PUSH ESI
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
MOV EDI,dword ptr [EDI + 0x4]
TEST EDI,EDI
JNZ 0x000296f0
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV EDX,EAX
AND EDX,0x43
CMP DL,0x2
JZ 0x00029898
AND EAX,0x3
MOV ESI,0x1
CMP AL,0x3
JZ 0x00029898
CMP DL,0x42
JZ 0x000298a9
MOV EAX,dword ptr [EBX + 0x7f8]
TEST EAX,EAX
JZ 0x0002a730
SUB ESP,0xc
PUSH 0x1
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV EBP,dword ptr [ESP + 0x28]
PUSH dword ptr [EBP + 0x20]
CALL 0x00014530
ADD ESP,0x20
TEST EAX,EAX
JZ 0x000297a4
MOVZX ECX,byte ptr [EAX + 0xc]
LEA EDX,[ECX + -0x3]
CMP DL,0x1
JBE 0x00029b10
SUB ESP,0x4
PUSH 0x0
LEA EAX,[ESP + 0x64]
PUSH EAX
PUSH dword ptr [EBX + 0x7f8]
CALL 0x000140a0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x5c]
CMP byte ptr [ECX],0x0
JNZ 0x00029ad0
SUB ESP,0x4
PUSH EDX
PUSH EAX
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX + 0x34]
CALL 0x00014b30
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002a7b0
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP dword ptr [ESI + 0x50],0x2
JZ 0x0002943c
MOV EAX,dword ptr [ESI + 0x1c]
TEST EAX,EAX
JZ 0x0002943c
TEST byte ptr [EAX + 0x14],0x1
JZ 0x0002943c
MOV EAX,dword ptr [ESP + 0x20]
CMP dword ptr [EAX + 0x8],0x3
JZ 0x0002943c
TEST EBP,EBP
JZ 0x00029830
MOV EDI,EBP
JMP 0x000293b3
MOV EAX,ESI
JMP 0x0002983f
MOV EBP,dword ptr [EAX + 0x38]
TEST EBP,EBP
JNZ 0x00029821
MOV EAX,dword ptr [EAX + 0x10]
TEST EAX,EAX
JNZ 0x00029838
SUB ESP,0x4
XOR EBP,EBP
PUSH 0x5
PUSH dword ptr [ESP + 0x4c]
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x0002943c
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbd08]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x000294cd
LEA EAX,[EBX + 0xc1c]
MOV ESI,dword ptr [EAX]
CMP DL,0x42
JNZ 0x00029769
LEA EAX,[EBX + 0xc1c]
MOV EDX,dword ptr [EAX]
LEA EAX,[EBX + 0xc18]
OR EDX,dword ptr [EAX]
JNZ 0x00029769
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbecc]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00029769
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x30]
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
PUSH ESI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
MOV ECX,dword ptr [EAX + 0x10]
TEST ECX,ECX
JZ 0x00028aaa
MOV EBP,dword ptr [EBP + 0x18]
TEST EBP,EBP
JNZ 0x00028a10
JMP 0x00028acb
TEST byte ptr [ESI + 0x28],0x20
JZ 0x00028d68
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EAX + 0x34]
MOV EAX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [EDX + 0x4]
JMP 0x00028d1f
MOV ECX,dword ptr [ESI + 0x14]
MOV EDX,dword ptr [EBP + 0x10]
MOV dword ptr [ECX + 0x10],EDX
TEST EDX,EDX
JZ 0x00029b90
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 0x00029bab
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 + 0x10],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 0x000299a2
CMP dword ptr [EAX + 0xac],0x0
JZ 0x000299a2
TEST ECX,ECX
MOV EDX,EAX
CMOVZ ECX,EAX
CMP EBP,ESI
JZ 0x000299ad
MOV ESI,dword ptr [ESI + 0x10]
TEST ESI,ESI
JNZ 0x00029980
MOV EAX,dword ptr [ESP + 0x10]
XOR ESI,ESI
MOV dword ptr [ESP + 0x10],EDX
TEST EDX,EDX
JZ 0x00029022
MOV EBP,dword ptr [EAX + 0x1c]
TEST EBP,EBP
JZ 0x0002ab31
MOV EDX,dword ptr [ESP + 0x10]
XOR ESI,ESI
CMP EBP,EDX
JZ 0x00029022
MOV ESI,dword ptr [ECX + 0x10]
MOV dword ptr [ESP + 0x38],EDX
MOV EDX,dword ptr [EDX + 0xc]
MOV dword ptr [ESP + 0x18],ESI
CMP dword ptr [ESP + 0x18],0x0
MOV ESI,EDX
JZ 0x0002a8b8
MOV ESI,dword ptr [ESP + 0x18]
MOV dword ptr [ESI + 0xc],EDX
MOV EDX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [EDX + 0xc]
MOV ESI,EDX
MOV EDX,ESI
TEST ESI,ESI
JZ 0x0002ab1e
MOV ESI,dword ptr [ESP + 0x18]
MOV dword ptr [EDX + 0x10],ESI
MOV EDX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESI + 0xc],EDX
TEST EDX,EDX
JZ 0x0002ab0b
MOV dword ptr [EDX + 0x10],ESI
MOV dword ptr [ECX + 0x10],EBP
XOR ESI,ESI
MOV dword ptr [EBP + 0xc],ECX
JMP 0x00029022
MOV EDI,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EDI]
MOV byte ptr [ESP + 0x10],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x000295ad
MOV EAX,dword ptr [ESP + 0x40]
LEA EDX,[ESP + 0x5c]
MOV dword ptr [ESP + 0x5c],0x0
MOV EAX,dword ptr [EAX + 0x70]
CALL 0x000261d0
MOV EAX,dword ptr [ESP + 0x5c]
TEST EAX,EAX
JNZ 0x000295ad
AND byte ptr [EDI + 0x3],0xef
JMP 0x000295ad
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EAX + 0x3c]
TEST ESI,ESI
JZ 0x00028ef3
LEA ESI,[ESI]
NOP
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH ESI
CALL 0x00014b80
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00029abf
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EAX + 0x4],0x0
MOV ESI,dword ptr [ESI + 0x9c]
TEST ESI,ESI
JNZ 0x00029aa0
JMP 0x00028ef3
SUB ESP,0x8
PUSH dword ptr [EBX + 0x334]
MOV EAX,dword ptr [ESP + 0x18]
PUSH dword ptr [EAX + 0x34]
CALL 0x000144e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002aa80
MOV EDI,dword ptr [EAX + 0x1c]
MOV EBP,dword ptr [EAX + 0x20]
TEST ESI,ESI
JNZ 0x0002a880
SUB ESP,0x4
PUSH EBP
PUSH EDI
JMP 0x000297ce
MOV ECX,dword ptr [EAX + 0x14]
MOV EDX,dword ptr [ECX + 0x54]
TEST EDX,EDX
JZ 0x000297a4
SUB ESP,0x4
MOV ESI,dword ptr [ECX + 0x4c]
MOV EDI,dword ptr [ECX + 0x50]
ADD ESI,dword ptr [EAX + 0x18]
ADC EDI,dword ptr [EAX + 0x1c]
ADD ESI,dword ptr [EDX + 0x1c]
ADC EDI,dword ptr [EDX + 0x20]
PUSH EDI
PUSH ESI
PUSH dword ptr [EBP + 0x34]
CALL 0x00014b30
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000297e5
SUB ESP,0x4
MOV ESI,dword ptr [EBX + 0x7f8]
LEA EAX,[EBX + 0xfffbbf10]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP ECX
POP EDI
PUSH ESI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x3c]
MOV ESI,dword ptr [EAX]
TEST ESI,ESI
JNZ 0x00028e2e
JMP 0x00028ea9
MOV EDX,dword ptr [ESP + 0x30]
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 0x0002996d
MOV ECX,dword ptr [ESP + 0x30]
LEA EDX,[EBP + 0x10]
MOV dword ptr [ECX + 0x4],EDX
JMP 0x00029970
CALL 0x00031ce0
XOR EDI,EDI
JMP 0x000289b0
SUB ESP,0x4
PUSH 0x5
PUSH dword ptr [ESP + 0x38]
PUSH 0x0
CALL 0x000142e0
POP ECX
POP EDX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00028b73
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x34]
MOV ESI,dword ptr [EAX + 0x60]
TEST ESI,ESI
JZ 0x00029330
LEA EAX,[EBX + 0xfffbb12f]
MOV dword ptr [ESP + 0x10],EAX
LEA ESI,[ESI]
MOV EBP,dword ptr [ESI]
SUB ESP,0xc
PUSH EBP
CALL 0x00014700
ADD EAX,0xa
MOV dword ptr [ESP],EAX
CALL 0x00014c78
ADD ESP,0xc
PUSH EBP
MOV EDI,EAX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x000149e0
MOV EDX,ESI
MOV EAX,EDI
CALL 0x0001ec30
LEA EAX,[EDI + 0x1]
MOV dword ptr [EDI + 0x1],0x7a69732e
MOV EDX,ESI
MOV byte ptr [EAX + 0x4],0x65
CALL 0x0001ec30
MOV dword ptr [ESP],EDI
CALL 0x00014c60
MOV ESI,dword ptr [ESI + 0xc]
ADD ESP,0x10
TEST ESI,ESI
JNZ 0x00029c18
JMP 0x00029330
SUB ESP,0xc
LEA EAX,[EBX + 0xfff8af90]
PUSH EAX
CALL 0x00014590
ADD ESP,0x10
MOV EDI,EAX
JMP 0x00028a7b
MOV dword ptr [EBX + 0x8ac],EDI
JMP 0x00029042
XOR EDX,EDX
MOV EAX,EBP
CALL 0x000210f0
MOV EDI,EAX
TEST EAX,EAX
JNZ 0x00029278
JMP 0x0002927d
MOV ECX,dword ptr [EBX + 0x7fc]
TEST ECX,ECX
JNZ 0x00029cdb
JMP 0x00028ec8
MOV ECX,dword ptr [ECX + 0x18]
TEST ECX,ECX
JZ 0x00028ec8
TEST byte ptr [ECX + 0x25],0x20
JNZ 0x00029cd0
MOV EAX,dword ptr [ECX + 0x10]
MOV EAX,dword ptr [EAX + 0x60]
TEST EAX,EAX
JZ 0x00029cd0
LEA ESI,[ESI]
NOP
MOV EDX,dword ptr [EAX + 0x14]
TEST DH,0x20
JNZ 0x00029cfe
AND DH,0x7f
MOV dword ptr [EAX + 0x14],EDX
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JNZ 0x00029cf0
JMP 0x00029cd0
MOV EAX,dword ptr [EBX + 0x828]
TEST EAX,EAX
JZ 0x00029327
MOV EDX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EBX + 0x82c]
MOV byte ptr [ESP + 0x18],CL
MOV EDX,dword ptr [EDX + 0x34]
LEA EBP,[ESI + EAX*0x4]
MOV ECX,EDX
JMP 0x00029d52
MOV byte ptr [EDI + 0xc],0x1
MOV dword ptr [EDI + 0x14],0x0
ADD ESI,0x4
CMP ESI,EBP
JZ 0x00029d90
MOV EDI,dword ptr [ESI]
TEST byte ptr [EDI + 0xd],0x8
JNZ 0x00029d4b
MOV EDX,dword ptr [EDI + 0x14]
MOV EAX,dword ptr [EDX + 0x54]
TEST EAX,EAX
JZ 0x00029d40
CMP dword ptr [EAX + 0xac],ECX
JNZ 0x00029d40
MOV dword ptr [ESP + 0x10],ECX
SUB ESP,0x8
PUSH dword ptr [EAX]
PUSH dword ptr [EDX]
CALL 0x000140c0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JNZ 0x00029d40
ADD ESI,0x4
CMP ESI,EBP
JNZ 0x00029d52
NOP
MOVZX ECX,byte ptr [ESP + 0x18]
JMP 0x00029327
MOV EAX,dword ptr [EBX + 0x338]
MOV EDI,dword ptr [EBX + 0x800]
MOV EBP,dword ptr [EAX]
MOV ESI,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [EBX + 0x7fc]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xc24]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x20],ECX
MOV dword ptr [ESP + 0x38],EAX
CALL 0x00036670
TEST EAX,EAX
JNZ 0x0002aaa0
MOV EAX,dword ptr [ESI]
XOR EDX,EDX
CALL 0x00026280
MOV EAX,dword ptr [EBX + 0x338]
CMP dword ptr [EAX],EBP
JZ 0x00029e11
MOV dword ptr [ESP + 0x28],EAX
LEA EDX,[EBX + 0xfffbad02]
SUB ESP,0x8
PUSH 0x1baf
PUSH EDX
CALL 0x00032bf0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
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 + 0x10]
MOV dword ptr [ESP + 0x28],ECX
CMP dword ptr [EBX + 0x7fc],EAX
JZ 0x00029e46
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbad02]
PUSH 0x1baf
PUSH EAX
CALL 0x00032bf0
ADD ESP,0x10
MOV EAX,dword ptr [EDI]
MOV ESI,dword ptr [EBX + 0x800]
MOV dword ptr [EBX + 0x800],EDI
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [EDI],0x0
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x18]
CMP dword ptr [EAX],ECX
JZ 0x00029e81
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbad02]
PUSH 0x1baf
PUSH EAX
CALL 0x00032bf0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESP + 0x20],ECX
MOV ECX,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ECX + 0x4]
MOV dword ptr [ECX + 0x4],EAX
MOV dword ptr [EAX],0x0
TEST EBP,EBP
JZ 0x000288bd
MOV EAX,dword ptr [EBX + 0x7fc]
MOV EDX,dword ptr [ECX]
TEST EAX,EAX
JNZ 0x00029ed1
JMP 0x00029ee3
MOV ECX,dword ptr [EAX + 0x10]
TEST ECX,ECX
JZ 0x00029eca
MOV ECX,dword ptr [ECX + 0x8c]
TEST ECX,ECX
CMOVZ EDX,EAX
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x00029ee3
MOVZX ECX,byte ptr [EAX + 0x25]
TEST CL,0x20
JZ 0x00029eb8
AND ECX,0x40
JZ 0x0002abbb
MOV dword ptr [EBX + 0x840],EDX
TEST EDX,EDX
JZ 0x0002abe8
MOV EAX,dword ptr [EBX + 0x338]
MOV ECX,dword ptr [EDX]
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX],ECX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EDX],EBP
CMP EDX,dword ptr [EAX + 0x4]
JZ 0x0002ab68
MOV EAX,dword ptr [EDX + 0x1c]
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [EDX + 0x1c],EAX
LEA EAX,[EDX + 0x1c]
CMP dword ptr [ECX + 0x4],EAX
JZ 0x0002ab9f
MOV ECX,dword ptr [EDX + 0x8]
MOV EAX,dword ptr [EBX + 0x800]
TEST ECX,ECX
JZ 0x0002ab78
MOV ECX,dword ptr [EDX + 0x18]
ADD EDX,0x18
MOV dword ptr [ESI],ECX
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [EDX],ECX
CMP EAX,EDX
JZ 0x0002abd3
MOV EAX,dword ptr [EBX + 0x7fc]
MOV ESI,dword ptr [EBX + 0x800]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBX + 0x8a8]
MOV EDX,0x2
ADD dword ptr [EBX + 0x7e0],0x1
CALL 0x00026280
MOV EAX,dword ptr [ESP + 0x10]
CMP dword ptr [EBX + 0x7fc],EAX
JZ 0x00029f9f
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbad02]
PUSH 0x1baf
PUSH EAX
CALL 0x00032bf0
ADD ESP,0x10
MOV EBP,dword ptr [ESI]
MOV dword ptr [EBX + 0x800],ESI
MOV dword ptr [ESI],0x0
LEA ESI,[ESI]
TEST EBP,EBP
JZ 0x000288bd
MOV EDI,dword ptr [EBP + 0x10]
MOV EAX,dword ptr [ESP + 0x18]
MOV ESI,dword ptr [EDI + 0x8c]
MOV EAX,dword ptr [EAX]
TEST ESI,ESI
CMOVNZ EDI,ESI
TEST EAX,EAX
JZ 0x0002a970
XOR ECX,ECX
MOV dword ptr [ESP + 0x10],0x0
JMP 0x00029ff3
TEST EDX,EDX
JZ 0x00029fec
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
CMOVNZ ECX,EAX
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x0002a010
MOV EDX,dword ptr [EAX + 0x10]
CMP EDX,EDI
JNZ 0x00029fe0
MOV EDX,dword ptr [EAX + 0x18]
TEST EDX,EDX
JNZ 0x0002a980
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0x10],ECX
TEST EAX,EAX
JNZ 0x00029ff3
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x0002a970
ADD EAX,0x18
MOV ECX,EAX
MOV EAX,dword ptr [ECX]
TEST EAX,EAX
JZ 0x0002a051
LEA ESI,[ESI]
NOP
TEST byte ptr [EAX + 0x25],0x40
JNZ 0x0002a047
MOV EDX,dword ptr [EAX + 0x10]
MOV EDX,dword ptr [EDX + 0x8c]
TEST EDX,EDX
JZ 0x0002a968
LEA ECX,[EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JNZ 0x0002a030
LEA EDX,[EBP + 0x18]
MOV dword ptr [ESP + 0x10],EDX
TEST ESI,ESI
JNZ 0x0002a900
MOV dword ptr [ECX],EBP
MOV EDX,dword ptr [EBP + 0x18]
MOV dword ptr [EBP + 0x18],EAX
MOV EBP,EDX
JMP 0x00029fb0
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbb698]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00028893
SUB ESP,0xc
MOV EBP,dword ptr [ESP + 0x18]
PUSH dword ptr [EBP + 0x34]
CALL 0x00014c10
LEA ECX,[EAX + -0x1]
MOV EDI,ECX
SHR EDI,0x5
AND EDI,0x1
MOV ESI,EDI
SHL EDI,CL
XOR ESI,0x1
MOV EDX,EDI
SHL ESI,CL
MOV EAX,ESI
SHLD EDX,ESI,0x1
ADD EAX,ESI
MOV EDI,EDX
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0x34]
ADD ESI,-0x1
MOV EBP,dword ptr [EAX + 0x60]
ADC EDI,-0x1
MOV dword ptr [ESP + 0x20],ESI
MOV dword ptr [ESP + 0x24],EDI
ADD ESP,0x10
TEST EBP,EBP
JZ 0x0002a1b6
LEA EAX,[EBX + 0xfffbbd98]
MOV dword ptr [ESP + 0x20],EBX
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xfffbbd64]
MOV dword ptr [ESP + 0x38],EAX
TEST byte ptr [EBP + 0x14],0x1
JZ 0x0002a1a0
MOV EAX,dword ptr [EBP + 0x1c]
MOV ECX,dword ptr [EBP + 0x2c]
MOV EDX,dword ptr [EBP + 0x20]
MOV EBX,dword ptr [EBP + 0x30]
MOV ESI,EAX
MOV dword ptr [ESP + 0x18],ECX
ADD ESI,ECX
MOV EDI,EDX
MOV dword ptr [ESP + 0x1c],EBX
ADC EDI,EBX
MOV ECX,ESI
MOV ESI,dword ptr [ESP + 0x10]
MOV EBX,EDI
MOV EDI,dword ptr [ESP + 0x14]
AND ESI,ECX
AND EDI,EBX
MOV ECX,EDI
OR ECX,ESI
JZ 0x0002a152
MOV ECX,dword ptr [ESP + 0x10]
AND ECX,EAX
MOV EAX,dword ptr [ESP + 0x14]
AND EAX,EDX
CMP ESI,ECX
SBB EDI,EAX
JC 0x0002a818
MOV ECX,dword ptr [EBP + 0x24]
MOV EAX,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [EBP + 0x28]
MOV EDX,dword ptr [ESP + 0x1c]
ADD EAX,ECX
MOV dword ptr [ESP + 0x18],ECX
MOV ESI,dword ptr [ESP + 0x14]
ADC EDX,EBX
MOV dword ptr [ESP + 0x1c],EBX
MOV EBX,dword ptr [ESP + 0x10]
MOV ECX,EBX
AND ECX,EAX
MOV EAX,EDX
AND EAX,ESI
MOV EDX,EAX
OR EDX,ECX
JZ 0x0002a1a0
MOV EDX,dword ptr [ESP + 0x18]
AND EDX,dword ptr [ESP + 0x10]
MOV ESI,EDX
MOV EDX,dword ptr [ESP + 0x1c]
AND EDX,dword ptr [ESP + 0x14]
CMP ECX,ESI
SBB EAX,EDX
JC 0x0002a990
NOP
MOV EBP,dword ptr [EBP + 0xc]
TEST EBP,EBP
JNZ 0x0002a100
MOV EAX,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x34]
MOV EAX,dword ptr [EAX + 0x68]
CMP EAX,0x1
JBE 0x000296dd
SUB ESP,0xc
SHL EAX,0x3
PUSH EAX
CALL 0x00014c78
XOR EDX,EDX
MOV dword ptr [ESP + 0x48],EAX
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [EAX + 0x34]
MOV dword ptr [ESP + 0x18],0x0
MOV EDI,dword ptr [EAX + 0x60]
TEST EDI,EDI
JZ 0x0002aba7
LEA ESI,[ESI]
MOV EAX,dword ptr [EDI + 0x14]
TEST AL,0x1
JZ 0x0002a222
AND EAX,0x402
CMP EAX,0x400
JZ 0x0002a222
MOV EAX,dword ptr [EDI + 0x30]
OR EAX,dword ptr [EDI + 0x2c]
JZ 0x0002a222
LEA EAX,[ECX + EDX*0x8]
ADD EDX,0x1
MOV dword ptr [EAX],EDI
MOV dword ptr [EAX + 0x4],0x0
MOV EDI,dword ptr [EDI + 0xc]
TEST EDI,EDI
JNZ 0x0002a1f8
MOV ESI,EDX
MOV dword ptr [ESP + 0x18],EDX
CMP EDX,0x1
JBE 0x0002aba7
LEA EAX,[EBX + 0xfff8aef0]
PUSH EAX
PUSH 0x8
PUSH EDX
MOV EBP,dword ptr [ESP + 0x44]
PUSH EBP
CALL 0x00014a60
LEA EAX,[EBP + ESI*0x8]
MOV ESI,EBP
MOV dword ptr [ESP + 0x38],EAX
ADD ESP,0x10
LEA EAX,[EBX + 0xfffbbdcc]
MOV dword ptr [ESP + 0x30],0x0
MOV dword ptr [ESP + 0x34],0x0
MOV dword ptr [ESP + 0x20],0x0
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [ESP + 0x3c],EBX
JMP 0x0002a31a
MOV EAX,dword ptr [EBP]
SUB ESP,0x4
MOV EDI,dword ptr [EDI]
MOV dword ptr [ESP + 0x4c],EDX
MOV dword ptr [ESP + 0x50],ECX
MOV dword ptr [ESP + 0x48],EAX
PUSH 0x5
PUSH dword ptr [ESP + 0x48]
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x4c]
CALL 0x000142e0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x40]
PUSH EDI
MOV EDX,dword ptr [ESP + 0x60]
MOV ECX,dword ptr [ESP + 0x64]
PUSH ECX
PUSH EDX
MOV dword ptr [ESP + 0x40],EDX
MOV dword ptr [ESP + 0x44],ECX
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x6c]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x6c]
CALL 0x00032ba0
MOV dword ptr [ESI + 0x4],0x1
ADD ESP,0x30
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
MOV EDI,EBP
MOV dword ptr [ESP + 0x30],EAX
MOV dword ptr [ESP + 0x34],EDX
ADD ESI,0x8
CMP dword ptr [ESP + 0x28],ESI
JZ 0x0002a3c8
MOV EBP,dword ptr [ESI]
TEST byte ptr [EBP + 0x14],0x2
JZ 0x0002a30d
MOV EAX,dword ptr [EBP + 0x24]
MOV EDX,dword ptr [EBP + 0x28]
MOV EBX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EBP + 0x2c]
MOV ECX,dword ptr [EBX + 0x86c]
MOV dword ptr [ESP + 0x14],EDX
XOR EBX,EBX
MOV EDX,dword ptr [EBP + 0x30]
SHRD EAX,EDX,CL
SHR EDX,CL
TEST CL,0x20
MOV ECX,dword ptr [ESP + 0x10]
CMOVNZ EAX,EDX
CMOVNZ EDX,EBX
MOV EBX,dword ptr [ESP + 0x14]
ADD ECX,-0x1
ADC EBX,-0x1
ADD EAX,ECX
ADC EDX,EBX
MOV ECX,EDX
MOV EDX,EAX
TEST EDI,EDI
JZ 0x0002a9a8
MOV EBX,dword ptr [ESP + 0x10]
CMP dword ptr [ESP + 0x20],EBX
MOV EBX,dword ptr [ESP + 0x24]
SBB EBX,dword ptr [ESP + 0x14]
JNC 0x0002a290
MOV EBX,dword ptr [ESP + 0x30]
CMP dword ptr [ESP + 0x20],EBX
MOV EBX,dword ptr [ESP + 0x24]
SBB EBX,dword ptr [ESP + 0x34]
JC 0x0002a290
MOV dword ptr [ESP + 0x24],ECX
MOV EBX,dword ptr [ESP + 0x14]
MOV EDI,EBP
ADD ESI,0x8
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x34],EBX
MOV dword ptr [ESP + 0x30],ECX
CMP dword ptr [ESP + 0x28],ESI
JNZ 0x0002a31a
LEA ESI,[ESI]
MOV EBX,dword ptr [ESP + 0x3c]
LEA EAX,[EBX + 0xfff8af40]
PUSH EAX
PUSH 0x8
PUSH dword ptr [ESP + 0x20]
MOV ESI,dword ptr [ESP + 0x44]
PUSH ESI
CALL 0x00014a60
MOV EAX,dword ptr [ESI]
MOV ECX,0x1
MOV EDX,dword ptr [EAX + 0x20]
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,dword ptr [EAX + 0x1c]
MOV EBP,EDX
MOV dword ptr [ESP + 0x3c],EDX
MOV dword ptr [ESP + 0x38],EAX
MOV EDX,EAX
ADD ESP,0x10
MOV EAX,EBP
MOV EBP,ESI
LEA ESI,[ESI]
NOP
MOV ESI,dword ptr [EBP + ECX*0x8]
MOV EDI,dword ptr [ESI + 0x1c]
MOV ESI,dword ptr [ESI + 0x20]
XOR EDX,EDI
XOR EAX,ESI
OR EAX,EDX
JZ 0x0002a9b9
ADD ECX,0x1
MOV EDX,EDI
MOV EAX,ESI
CMP ECX,dword ptr [ESP + 0x18]
JNZ 0x0002a410
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [EBX + 0x86c]
MOV dword ptr [ESP + 0x3c],EBX
MOV EDX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [EAX + 0x2c]
MOV EDI,dword ptr [EAX + 0x30]
XOR EAX,EAX
MOV EBP,EDI
MOV EDI,ESI
SHRD EDI,EBP,CL
SHR EBP,CL
TEST CL,0x20
CMOVNZ EDI,EBP
CMOVNZ EBP,EAX
MOV EAX,dword ptr [ESP + 0x28]
MOV ESI,EDI
ADD EAX,-0x1
MOV EDI,EBP
ADC EDX,-0x1
ADD ESI,EAX
LEA EAX,[EBX + 0xfffbbe0c]
ADC EDI,EDX
XOR EDX,EDX
MOV dword ptr [ESP + 0x20],ESI
MOV dword ptr [ESP + 0x24],EDI
MOV dword ptr [ESP + 0x44],EAX
MOV dword ptr [ESP + 0x10],EDX
JMP 0x0002a51c
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [ESP + 0x4c],ECX
SUB ESP,0x4
MOV ECX,dword ptr [EBP]
MOV dword ptr [ESP + 0x4c],EDX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x44],ECX
MOV dword ptr [ESP + 0x34],EAX
PUSH 0x5
PUSH dword ptr [ESP + 0x4c]
PUSH 0x0
MOV EBX,dword ptr [ESP + 0x4c]
CALL 0x000142e0
ADD ESP,0xc
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESP + 0x60]
MOV ECX,dword ptr [ESP + 0x64]
PUSH ECX
PUSH EDX
MOV dword ptr [ESP + 0x40],EDX
MOV dword ptr [ESP + 0x44],ECX
PUSH EDI
PUSH ESI
PUSH dword ptr [ESP + 0x68]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x6c]
CALL 0x00032ba0
ADD ESP,0x30
MOV EDX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x24]
LEA ESI,[ESI]
MOV dword ptr [ESP + 0x20],EDX
MOV dword ptr [ESP + 0x24],ECX
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x2c],EDI
MOV dword ptr [ESP + 0x30],EBP
ADD dword ptr [ESP + 0x10],0x1
MOV EAX,dword ptr [ESP + 0x10]
CMP EAX,dword ptr [ESP + 0x18]
JZ 0x0002a9b5
MOV EAX,dword ptr [ESP + 0x38]
MOV ECX,dword ptr [ESP + 0x10]
XOR EBX,EBX
MOV EBP,dword ptr [EAX + ECX*0x8]
MOV ECX,dword ptr [ESP + 0x3c]
MOV EDX,dword ptr [EBP + 0x30]
MOV ECX,dword ptr [ECX + 0x86c]
MOV EAX,dword ptr [EBP + 0x2c]
MOV ESI,dword ptr [EBP + 0x1c]
MOV EDI,dword ptr [EBP + 0x20]
SHRD EAX,EDX,CL
SHR EDX,CL
TEST CL,0x20
MOV ECX,ESI
CMOVNZ EAX,EDX
CMOVNZ EDX,EBX
ADD ECX,-0x1
MOV EBX,EDI
ADC EBX,-0x1
ADD EAX,ECX
ADC EDX,EBX
MOV EBX,dword ptr [ESP + 0x10]
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [EAX + EBX*0x8 + 0x4]
TEST EAX,EAX
JNZ 0x0002a508
MOV EAX,dword ptr [ESP + 0x24]
CMP dword ptr [ESP + 0x20],ESI
SBB EAX,EDI
JNC 0x0002a490
MOV EAX,dword ptr [ESP + 0x28]
CMP dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x24]
SBB EAX,dword ptr [ESP + 0x2c]
JNC 0x0002a508
JMP 0x0002a490
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ECX + 0x34]
MOV ECX,dword ptr [ECX + 0x3c]
MOV EAX,dword ptr [EAX + 0x4]
MOV dword ptr [ESP + 0x28],ECX
MOVZX EAX,byte ptr [EAX + 0x18]
MOV byte ptr [ESP + 0x10],AL
TEST ECX,ECX
JZ 0x00028c22
CMP AL,0x1
MOV EBP,dword ptr [EBX + 0xffffff98]
SBB EAX,EAX
ADD EAX,0x2
MOV dword ptr [ESP + 0x30],EAX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x28]
MOV EDI,dword ptr [EAX + 0x60]
LEA EAX,[EBX + 0xfffbb158]
MOV dword ptr [ESP + 0x38],EAX
TEST EDI,EDI
JZ 0x0002a640
LEA ESI,[ESI]
MOV EDX,dword ptr [EDI]
MOVZX EAX,byte ptr [EDX]
TEST AL,AL
JZ 0x0002a660
MOVZX ECX,AL
TEST byte ptr [EBP + ECX*0x2],0x8c
JNZ 0x0002a617
CMP AL,0x5f
JNZ 0x0002a639
MOV EAX,EDX
LEA ESI,[ESI]
ADD EAX,0x1
MOVZX ECX,byte ptr [EAX]
TEST CL,CL
JZ 0x0002a660
MOVZX ESI,CL
TEST byte ptr [EBP + ESI*0x2],0x8c
JNZ 0x0002a620
CMP CL,0x5f
JZ 0x0002a620
MOV EDI,dword ptr [EDI + 0xc]
TEST EDI,EDI
JNZ 0x0002a600
MOV EAX,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EAX + 0x9c]
MOV dword ptr [ESP + 0x28],EAX
TEST EAX,EAX
JNZ 0x0002a5e8
JMP 0x00028c22
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x28],EDX
CALL 0x00014700
ADD EAX,0xa
MOV dword ptr [ESP],EAX
CALL 0x00014c78
MOV ESI,EAX
MOVZX EAX,byte ptr [ESP + 0x20]
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x1c]
MOV byte ptr [ESI],AL
TEST AL,AL
PUSH EDX
PUSH dword ptr [ESP + 0x40]
MOV byte ptr [ESP + 0x1c],AL
SETNZ AL
MOVZX EAX,AL
ADD EAX,ESI
PUSH EAX
CALL 0x000149e0
MOV EDX,EDI
MOV EAX,ESI
CALL 0x0001ec30
MOVZX EAX,byte ptr [ESP + 0x20]
MOV EDX,0x706f
MOV byte ptr [ESI + 0x1],AL
MOV EAX,dword ptr [ESP + 0x40]
ADD EAX,ESI
MOV word ptr [EAX + 0x4],DX
MOV EDX,EDI
MOV dword ptr [EAX],0x74735f5f
LEA EAX,[ESI + 0x1]
CALL 0x0001ec30
MOV dword ptr [ESP],ESI
CALL 0x00014c60
MOV EDI,dword ptr [EDI + 0xc]
ADD ESP,0x10
TEST EDI,EDI
JNZ 0x0002a600
JMP 0x0002a640
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbaf82]
PUSH 0x1
PUSH 0x0
PUSH EAX
CALL 0x00023550
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x2c]
TEST EAX,EAX
JZ 0x0002aad8
PUSH ESI
ADD ESI,0x8
PUSH 0x0
PUSH EBP
PUSH ESI
CALL 0x000243d0
ADD ESP,0x10
JMP 0x000290c0
MOV EAX,dword ptr [EBX + 0x340]
XOR ESI,ESI
MOV dword ptr [EBX + 0x7f8],EAX
JMP 0x00029777
MOV EAX,dword ptr [EBX + 0x7f4]
MOV dword ptr [ECX + 0x48],EAX
MOV EAX,dword ptr [EBX + 0x340]
TEST EAX,EAX
JZ 0x000288fa
CALL 0x00021990
JMP 0x000288fa
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbc84]
MOV ESI,dword ptr [EBP + 0xac]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
ADD ESP,0xc
PUSH ESI
PUSH EBP
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00029269
AND EDX,0xfffffff7
MOV dword ptr [EAX + 0x14],EDX
JMP 0x0002917b
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbf34]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
MOV dword ptr [ESP],EAX
CALL 0x00032ba0
ADD ESP,0x10
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH 0x1
PUSH EDI
PUSH dword ptr [ESP + 0x24]
CALL 0x00023550
ADD ESP,0x10
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x2c]
TEST EAX,EAX
JZ 0x0002a8c7
LEA EAX,[ESI + 0x8]
PUSH ESI
PUSH 0x0
PUSH EBP
PUSH EAX
CALL 0x000243d0
ADD ESP,0x10
JMP 0x00029298
SUB ESP,0x4
MOV ESI,dword ptr [EBP]
PUSH 0x5
PUSH dword ptr [ESP + 0x40]
PUSH 0x0
MOV EDI,dword ptr [ESP + 0x30]
MOV EBX,EDI
CALL 0x000142e0
POP EDI
POP EDX
PUSH ESI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x0002a1a0
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV ECX,EAX
MOV byte ptr [ESP + 0x10],AL
AND ECX,0x3
JMP 0x0002917b
SUB ESP,0x4
LEA EDX,[EBX + 0xfff8d720]
PUSH 0x0
PUSH EDX
PUSH EAX
CALL 0x00014840
ADD ESP,0x10
JMP 0x00028ea9
MOV dword ptr [ESP + 0x10],EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xfffbbf54]
MOV ESI,dword ptr [EBX + 0x7f8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00032ba0
MOV EDX,dword ptr [ESP + 0x30]
ADD ESP,0x20
MOV EDI,dword ptr [EDX + 0x1c]
MOV EBP,dword ptr [EDX + 0x20]
JMP 0x00029afe
MOV EDX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EDX + 0x34]
MOV dword ptr [EDX + 0x60],ESI
JMP 0x00029a03
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x18],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x0002a8e3
TEST byte ptr [EBP + 0x14],0x3
JNZ 0x0002a7ff
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
CALL 0x000307b0
ADD ESP,0x10
MOV dword ptr [ESI + 0x2c],EAX
JMP 0x0002a7ff
MOV EDX,dword ptr [EBP + 0x18]
TEST EDX,EDX
JZ 0x0002a93d
MOV EDI,dword ptr [EDX + 0x10]
CMP ESI,dword ptr [EDI + 0x8c]
JNZ 0x0002a93d
MOV dword ptr [ESP + 0x20],EAX
JMP 0x0002a92b
MOV EAX,dword ptr [EDX + 0x10]
CMP dword ptr [EAX + 0x8c],ESI
JNZ 0x0002a935
LEA EDI,[EDX + 0x18]
MOV EDX,dword ptr [EDX + 0x18]
TEST EDX,EDX
JNZ 0x0002a920
MOV dword ptr [ESP + 0x10],EDI
MOV EAX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ECX],EBP
MOV EBP,dword ptr [EDX]
MOV dword ptr [EDX],EAX
MOV EAX,dword ptr [ESI + 0xa4]
TEST EAX,EAX
JZ 0x00029fb0
MOV EDI,dword ptr [ESP + 0x10]
SUB EDI,0x18
MOV dword ptr [EAX + 0x18],EDI
JMP 0x00029fb0
MOV EAX,dword ptr [ECX]
JMP 0x0002a051
MOV ECX,dword ptr [EBX + 0x7fc]
ADD ECX,0x18
JMP 0x0002a021
LEA ECX,[EDX + 0x18]
MOV EAX,dword ptr [EDX + 0x18]
JMP 0x0002a051
SUB ESP,0x4
MOV ESI,dword ptr [EBP]
PUSH 0x5
PUSH dword ptr [ESP + 0x30]
JMP 0x0002a824
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x24],ECX
JMP 0x0002a2fb
MOV EBX,dword ptr [ESP + 0x3c]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
CALL 0x00014c60
ADD ESP,0x10
LEA EAX,[EBX + 0xfffbbe4c]
MOV ESI,dword ptr [EBX + 0x84c]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffbbe78]
MOV dword ptr [ESP + 0x18],EAX
TEST ESI,ESI
JNZ 0x0002a9fb
JMP 0x000296dd
MOV ESI,dword ptr [ESI + 0x8]
TEST ESI,ESI
JZ 0x000296dd
MOV EDI,dword ptr [ESI + 0x38]
TEST EDI,EDI
JZ 0x0002a9f0
MOV EBP,dword ptr [ESI + 0x24]
MOV EAX,dword ptr [ESI + 0x18]
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 + 0x24]
PUSH dword ptr [ESP + 0x30]
PUSH 0x0
CALL 0x00014bd0
ADD ESP,0x1c
PUSH EBP
PUSH EDI
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x0002a9f0
MOV dword ptr [ESP + 0x5c],0x4
LEA ESI,[EBX + 0xfff8d720]
LEA EDI,[ESP + 0x5c]
JMP 0x0002aa57
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x20]
SUB ESP,0x4
PUSH EDI
PUSH ESI
PUSH EAX
CALL 0x00014840
MOV EAX,dword ptr [ESP + 0x6c]
SUB EAX,0x1
MOV dword ptr [ESP + 0x6c],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002aa50
JMP 0x00028e95
TEST ESI,ESI
JZ 0x000297e5
SUB ESP,0x4
MOV ESI,dword ptr [EBX + 0x7f8]
LEA EAX,[EBX + 0xfffbbf90]
PUSH 0x5
JMP 0x00029b59
CALL 0x00035fe0
SUB ESP,0x4
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBX + 0xfffbba94]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000142e0
POP EDX
POP ECX
MOV EDX,dword ptr [ESP + 0x30]
PUSH EDX
PUSH EAX
CALL 0x00032ba0
ADD ESP,0x10
JMP 0x00029ddf
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ESP + 0x18],AL
AND EAX,0x3
CMP AL,0x2
JZ 0x0002aaf4
TEST byte ptr [EBP + 0x14],0x3
JNZ 0x0002a713
SUB ESP,0x8
PUSH 0x0
PUSH 0x0
CALL 0x000307b0
ADD ESP,0x10
MOV dword ptr [ESI + 0x2c],EAX
JMP 0x0002a713
MOV EDX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [EDX + 0x34]
MOV dword ptr [EDX + 0x64],ESI
JMP 0x00029a29
MOV EDX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EDX + 0x34]
MOV dword ptr [EDX + 0x64],ESI
JMP 0x00029a14
MOV ESI,dword ptr [EAX + 0x14]
TEST ESI,ESI
JZ 0x00029022
LEA ESI,[ESI]
MOV EBP,dword ptr [ESI + 0x48]
TEST EBP,EBP
JS 0x0002ab5c
MOV EBP,dword ptr [ESI + 0x1c]
TEST EBP,EBP
JZ 0x0002ab5c
MOV EDX,dword ptr [EBP + 0xac]
TEST EDX,EDX
JNZ 0x000299ca
MOV ESI,dword ptr [ESI + 0x14]
TEST ESI,ESI
JNZ 0x0002ab40
JMP 0x00029022
MOV EAX,dword ptr [ESP + 0x28]
MOV ECX,dword ptr [ESP + 0x38]
MOV dword ptr [ECX + 0x4],EAX
JMP 0x00029f12
MOV EDX,dword ptr [EBX + 0x7fc]
MOV ECX,dword ptr [ESP + 0x10]
MOV dword ptr [ESI],EDX
LEA EDX,[EBX + 0x7fc]
MOV dword ptr [EBX + 0x7fc],ECX
CMP EAX,EDX
JZ 0x0002abc8
MOV ESI,dword ptr [EBX + 0x800]
JMP 0x00029f65
MOV dword ptr [ECX + 0x4],EDI
JMP 0x00029f2e
SUB ESP,0xc
PUSH dword ptr [ESP + 0x44]
CALL 0x00014c60
ADD ESP,0x10
JMP 0x000296dd
MOV dword ptr [EBX + 0x840],EAX
MOV EDX,EAX
JMP 0x00029ef1
MOV dword ptr [EBX + 0x800],ESI
JMP 0x00029f65
MOV EAX,dword ptr [EBX + 0x7fc]
MOV dword ptr [EBX + 0x800],ESI
MOV dword ptr [ESP + 0x10],EAX
JMP 0x00029f65
SUB ESP,0x8
LEA EAX,[EBX + 0xfffbad02]
PUSH 0x1c32
PUSH EAX
CALL 0x00032bf0
MOV EDX,dword ptr [EBX + 0x840]
ADD ESP,0x10
JMP 0x00029ef1
(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_00028810(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}\n\n" comment comment (function_definition "void FUN_00028810(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" primitive_type (function_declarator "FUN_00028810(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * 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 "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "byte bVar39;" type_identifier identifier ;) (declaration "undefined8 uVar40;" type_identifier identifier ;) (declaration "int *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "void *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier 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 "bVar39 = 0;" (assignment_expression "bVar39 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x28819;" (assignment_expression "uStack_14 = 0x28819" identifier = number_literal) ;) (if_statement "if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }" if (parenthesized_expression "(DAT_00093d14 != 0)" ( (binary_expression "DAT_00093d14 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001ea90();\n  }" { (expression_statement "FUN_0001ea90();" (call_expression "FUN_0001ea90()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" identifier = identifier) ;) (expression_statement "FUN_00021b90(FUN_00024b50,DAT_000938a8);" (call_expression "FUN_00021b90(FUN_00024b50,DAT_000938a8)" identifier (argument_list "(FUN_00024b50,DAT_000938a8)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001f3d0();" (call_expression "FUN_0001f3d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000314e0();" (call_expression "FUN_000314e0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }" for ( (assignment_expression "puVar15 = DAT_000937f4" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n    FUN_0001e860();\n  }" { (expression_statement "FUN_0001e860();" (call_expression "FUN_0001e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = bfd_section_already_linked_table_init();" (assignment_expression "iVar7 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" identifier = identifier) ;) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = DAT_00093c28;" (assignment_expression "piVar27 = DAT_00093c28" identifier = identifier) ;) (expression_statement "piVar23 = DAT_00093c24;" (assignment_expression "piVar23 = DAT_00093c24" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c81 & 2) != 0)" ( (binary_expression "(DAT_00093c81 & 2) != 0" (parenthesized_expression "(DAT_00093c81 & 2)" ( (binary_expression "DAT_00093c81 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar7 = *(int *)PTR_DAT_00093338;" (assignment_expression "iVar7 = *(int *)PTR_DAT_00093338" identifier = (pointer_expression "*(int *)PTR_DAT_00093338" * (cast_expression "(int *)PTR_DAT_00093338" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar32 = *(int **)(PTR_DAT_00093338 + 4);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_00093338 + 4)" identifier = (pointer_expression "*(int **)(PTR_DAT_00093338 + 4)" * (cast_expression "(int **)(PTR_DAT_00093338 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00093338 + 4)" ( (binary_expression "PTR_DAT_00093338 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = FUN_00036670();" (assignment_expression "iVar11 = FUN_00036670()" identifier = (call_expression "FUN_00036670()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" { (expression_statement "uVar8 = FUN_00035fe0();" (assignment_expression "uVar8 = FUN_00035fe0()" identifier = (call_expression "FUN_00035fe0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" identifier = identifier) ;) (if_statement "if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(int *)PTR_DAT_00093338 != iVar7)" ( (binary_expression "*(int *)PTR_DAT_00093338 != iVar7" (pointer_expression "*(int *)PTR_DAT_00093338" * (cast_expression "(int *)PTR_DAT_00093338" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar16 = *(int **)(puVar17 + 4);" (assignment_expression "piVar16 = *(int **)(puVar17 + 4)" identifier = (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar32;" (assignment_expression "iVar7 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "*(int **)(puVar17 + 4) = piVar32;" (assignment_expression "*(int **)(puVar17 + 4) = piVar32" (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" * identifier) = number_literal) ;) (if_statement "if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_000937fc != piVar24)" ( (binary_expression "DAT_000937fc != piVar24" identifier != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" 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_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (if_statement "if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_00093c24 != piVar23)" ( (binary_expression "DAT_00093c24 != piVar23" identifier != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar23 = DAT_00093c28;" (assignment_expression "piVar23 = DAT_00093c28" identifier = identifier) ;) (expression_statement "iVar11 = *piVar27;" (assignment_expression "iVar11 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "DAT_00093c28 = piVar27;" (assignment_expression "DAT_00093c28 = piVar27" identifier = identifier) ;) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" * identifier) = number_literal) ;) (expression_statement "piVar26 = DAT_000937fc;" (assignment_expression "piVar26 = DAT_000937fc" identifier = identifier) ;) (expression_statement "piVar27 = DAT_00093c24;" (assignment_expression "piVar27 = DAT_00093c24" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" for ( ; (comma_expression "DAT_00093840 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;\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_00029ef1;\n          break;\n        }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;" 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_00029ef1;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }" if (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0))" ( (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 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] + 0x8c) == 0)" ( (binary_expression "*(int *)(piVar26[4] + 0x8c) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x8c)" * (cast_expression "(int *)(piVar26[4] + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[4] + 0x8c)" ( (binary_expression "piVar26[4] + 0x8c" (subscript_expression "piVar26[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_00093840 = piVar26;\n        }" { (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar27 = DAT_00093840;" (assignment_expression "piVar27 = DAT_00093840" identifier = identifier) ;) })) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) (if_statement "if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" if (parenthesized_expression "(DAT_00093840 == (int *)0x0)" ( (binary_expression "DAT_00093840 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) })) (labeled_statement "LAB_00029ef1:\n      DAT_00093840 = piVar26;" statement_identifier : (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" identifier = identifier) ;)) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" identifier = identifier) ;) (expression_statement "*piVar16 = *DAT_00093840;" (assignment_expression "*piVar16 = *DAT_00093840" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*DAT_00093840" * identifier)) ;) (expression_statement "*piVar26 = iVar7;" (assignment_expression "*piVar26 = iVar7" (pointer_expression "*piVar26" * identifier) = identifier) ;) (if_statement "if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }" if (parenthesized_expression "(piVar26 == *(int **)(puVar17 + 4))" ( (binary_expression "piVar26 == *(int **)(puVar17 + 4)" identifier == (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int **)(puVar17 + 4) = piVar16;\n      }" { (expression_statement "*(int **)(puVar17 + 4) = piVar16;" (assignment_expression "*(int **)(puVar17 + 4) = piVar16" (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 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] = iVar11;" (assignment_expression "piVar26[7] = iVar11" (subscript_expression "piVar26[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = DAT_00093800;" (assignment_expression "piVar27 = DAT_00093800" identifier = identifier) ;) (if_statement "if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }" if (parenthesized_expression "(DAT_00093c28 == piVar26 + 7)" ( (binary_expression "DAT_00093c28 == piVar26 + 7" identifier == (binary_expression "piVar26 + 7" identifier + number_literal)) )) (compound_statement "{\n        DAT_00093c28 = piVar23;\n      }" { (expression_statement "DAT_00093c28 = piVar23;" (assignment_expression "DAT_00093c28 = piVar23" identifier = identifier) ;) })) (if_statement "if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\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        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }" { (expression_statement "*piVar32 = (int)DAT_000937fc;" (assignment_expression "*piVar32 = (int)DAT_000937fc" (pointer_expression "*piVar32" * identifier) = (cast_expression "(int)DAT_000937fc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_000937fc = piVar24;" (assignment_expression "DAT_000937fc = piVar24" identifier = identifier) ;) (if_statement "if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }" if (parenthesized_expression "((int **)piVar27 != &DAT_000937fc)" ( (binary_expression "(int **)piVar27 != &DAT_000937fc" (cast_expression "(int **)piVar27" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_000937fc" & identifier)) )) (compound_statement "{\n          piVar32 = DAT_00093800;\n        }" { (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" identifier = identifier) ;) })) }) (else_clause "else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" else (compound_statement "{\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" { (expression_statement "*piVar32 = piVar26[6];" (assignment_expression "*piVar32 = piVar26[6]" (pointer_expression "*piVar32" * 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          piVar32 = DAT_00093800;\n        }" if (parenthesized_expression "(piVar27 != piVar26 + 6)" ( (binary_expression "piVar27 != piVar26 + 6" identifier != (binary_expression "piVar26 + 6" identifier + number_literal)) )) (compound_statement "{\n          piVar32 = DAT_00093800;\n        }" { (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" identifier = identifier) ;) })) }))) (expression_statement "DAT_00093800 = piVar32;" (assignment_expression "DAT_00093800 = piVar32" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(DAT_000937fc != piVar24)" ( (binary_expression "DAT_000937fc != piVar24" identifier != identifier) )) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar7 = *piVar26;" (assignment_expression "iVar7 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) ;) (expression_statement "DAT_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (while_statement "while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" { (expression_statement "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar7 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar10 = iVar11;\n        }" { (expression_statement "iVar10 = iVar11;" (assignment_expression "iVar10 = iVar11" identifier = identifier) ;) })) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }" if (parenthesized_expression "(DAT_00093c24 != (int *)0x0)" ( (binary_expression "DAT_00093c24 != (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_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\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_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = DAT_00093c24;" (assignment_expression "piVar26 = DAT_00093c24" identifier = identifier) ;) (do_statement "do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);" do (compound_statement "{\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          }" { (while_statement "while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" while (parenthesized_expression "(piVar26[4] == iVar10)" ( (binary_expression "piVar26[4] == iVar10" (subscript_expression "piVar26[4]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" { (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                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\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 "iVar10 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar10 = *(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_0002a051;" 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_6c = piVar23;" (assignment_expression "local_6c = piVar23" identifier = identifier) ;) (if_statement "if (piVar26 == (int *)0x0) goto LAB_0002a010;" 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_0002a010;" goto statement_identifier ;)) })) (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 ]))) ;) }) 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_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" statement_identifier : (if_statement "if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" if (parenthesized_expression "(local_6c != (int *)0x0)" ( (binary_expression "local_6c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar24 = local_6c;\n          }" { (expression_statement "piVar24 = local_6c;" (assignment_expression "piVar24 = local_6c" identifier = identifier) ;) }))) })) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" identifier = (binary_expression "piVar24 + 6" identifier + number_literal)) ;) (for_statement "for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" for ( (assignment_expression "iVar10 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ; (binary_expression "iVar10 != 0" identifier != number_literal) ; (assignment_expression "iVar10 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" { (if_statement "if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0))" ( (binary_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" (parenthesized_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)(iVar10 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 0x25) & 0x40)" ( (binary_expression "*(byte *)(iVar10 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar10 + 0x25)" * (cast_expression "(byte *)(iVar10 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25)" ( (binary_expression "iVar10 + 0x25" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            iVar10 = *piVar24;\n            break;\n          }" { (expression_statement "iVar10 = *piVar24;" (assignment_expression "iVar10 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = (int *)(iVar10 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar10 + 0x18)" identifier = (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);" statement_identifier : (expression_statement "local_6c = (int *)(iVar7 + 0x18);" (assignment_expression "local_6c = (int *)(iVar7 + 0x18)" identifier = (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) ;)) (if_statement "if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }" { (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x18)" identifier = (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = iVar11;" (assignment_expression "iVar7 = iVar11" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" else (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x18)" identifier = (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }" { (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" while (parenthesized_expression "(iVar11 == iVar28)" ( (binary_expression "iVar11 == iVar28" identifier == identifier) )) (compound_statement "{\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" { (expression_statement "local_6c = (int *)(iVar25 + 0x18);" (assignment_expression "local_6c = (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) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar7 = *local_6c;" (assignment_expression "iVar7 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "*local_6c = iVar10;" (assignment_expression "*local_6c = iVar10" (pointer_expression "*local_6c" * identifier) = identifier) ;) (if_statement "if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" if (parenthesized_expression "(*(int *)(iVar11 + 0xa4) != 0)" ( (binary_expression "*(int *)(iVar11 + 0xa4) != 0" (pointer_expression "*(int *)(iVar11 + 0xa4)" * (cast_expression "(int *)(iVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xa4)" ( (binary_expression "iVar11 + 0xa4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" { (expression_statement "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;" (assignment_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6" (pointer_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" * (cast_expression "(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar11 + 0xa4) + 0x18)" ( (binary_expression "*(int *)(iVar11 + 0xa4) + 0x18" (pointer_expression "*(int *)(iVar11 + 0xa4)" * (cast_expression "(int *)(iVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xa4)" ( (binary_expression "iVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "local_6c + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_00093cc8 != (undefined4 *)0x0)" ( (binary_expression "DAT_00093cc8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_00093cc8 = &DAT_000937f4;" (assignment_expression "DAT_00093cc8 = &DAT_000937f4" identifier = (pointer_expression "&DAT_000937f4" & identifier)) ;) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" if (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" ( (binary_expression "DAT_000937f8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" { (expression_statement "DAT_00093cc8 = DAT_000937f4;" (assignment_expression "DAT_00093cc8 = DAT_000937f4" identifier = identifier) ;) (if_statement "if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }" if (parenthesized_expression "(PTR_s_start_00093340 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_00093340 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00021990();\n    }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }" if (parenthesized_expression "(DAT_00093cd0 != 0)" ( (binary_expression "DAT_00093cd0 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00021990();\n  }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }" if (parenthesized_expression "(DAT_00093cd4 != 0)" ( (binary_expression "DAT_00093cd4 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00021990();\n  }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000313f0();" (call_expression "FUN_000313f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" if (parenthesized_expression "((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0))" ( (binary_expression "(DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00093dd0 != 0)" ( (binary_expression "DAT_00093dd0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00093870 != (undefined4 *)0x0)" ( (binary_expression "DAT_00093870 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" { (expression_statement "uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar8 = 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_00032c30(uVar8);" (call_expression "FUN_00032c30(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (for_statement "for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" for ( (assignment_expression "puVar15 = DAT_00093870" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" { (expression_statement "FUN_00032c30(&DAT_0004de8a,puVar15[1]);" (call_expression "FUN_00032c30(&DAT_0004de8a,puVar15[1])" identifier (argument_list "(&DAT_0004de8a,puVar15[1])" ( (pointer_expression "&DAT_0004de8a" & identifier) , (subscript_expression "puVar15[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar9 = strlen((char *)puVar15[1]);" (assignment_expression "sVar9 = strlen((char *)puVar15[1])" identifier = (call_expression "strlen((char *)puVar15[1])" identifier (argument_list "((char *)puVar15[1])" ( (cast_expression "(char *)puVar15[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar9)" ( (binary_expression "0x1c < sVar9" number_literal < identifier) )) (compound_statement "{\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" { (expression_statement "FUN_00031ce0();" (call_expression "FUN_00031ce0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);" do (compound_statement "{\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      }" { (expression_statement "FUN_00031cb0();" (call_expression "FUN_00031cb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar9 != 0x1e)" ( (binary_expression "sVar9 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" if (parenthesized_expression "(puVar15[2] != 0)" ( (binary_expression "puVar15[2] != 0" (subscript_expression "puVar15[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" { (expression_statement "FUN_00032c30(&DAT_0004e11a,puVar15[2]);" (call_expression "FUN_00032c30(&DAT_0004e11a,puVar15[2])" identifier (argument_list "(&DAT_0004e11a,puVar15[2])" ( (pointer_expression "&DAT_0004e11a" & identifier) , (subscript_expression "puVar15[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_00032c30("(%pT)\n",puVar15[3]);" (call_expression "FUN_00032c30("(%pT)\n",puVar15[3])" identifier (argument_list "("(%pT)\n",puVar15[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar15[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" for ( (assignment_expression "piVar24 = DAT_000937fc" 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 "{\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" { (labeled_statement "LAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" statement_identifier : (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\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 "{\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" { (labeled_statement "LAB_00028ac0:\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 ]))) ;)) (labeled_statement "joined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;" statement_identifier : (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 ;))) (goto_statement "goto LAB_00028a10;" goto statement_identifier ;) }))) (expression_statement "iVar7 = piVar24[4];" (assignment_expression "iVar7 = piVar24[4]" identifier = (subscript_expression "piVar24[4]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);" (assignment_expression "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" identifier = (call_expression "bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" identifier (argument_list "(iVar7,DAT_00093cb4,DAT_00093d3c)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = DAT_00093cb4;" (assignment_expression "iVar11 = DAT_00093cb4" identifier = identifier) ;) (if_statement "if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" if (parenthesized_expression "(((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0))" ( (binary_expression "((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)" (parenthesized_expression "((DAT_00093c80 & 3) == 2)" ( (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_00093c82._1_1_ & 8) != 0)" ( (binary_expression "(DAT_00093c82._1_1_ & 8) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 8)" ( (binary_expression "DAT_00093c82._1_1_ & 8" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" { (if_statement "if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }" { (if_statement "if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;" if (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" * (cast_expression "(byte *)(iVar7 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" else (compound_statement "{\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" { (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;" if (parenthesized_expression "((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))" ( (binary_expression "(puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" (parenthesized_expression "(puVar15[1] == puVar22[1])" ( (binary_expression "puVar15[1] == puVar22[1]" (subscript_expression "puVar15[1]" identifier [ number_literal ]) == (subscript_expression "puVar22[1]" identifier [ number_literal ])) )) || (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" * (cast_expression "(byte *)(iVar7 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00028a63;" goto statement_identifier ;)) }))) (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar20 = 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 "uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11)" identifier (argument_list "(uVar20,uVar14,iVar7,uVar8,iVar11)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar10 == 0) goto LAB_00028d68;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (labeled_statement "LAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" if (parenthesized_expression "(*(int *)(iVar7 + 0x68) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x68) == 0" (pointer_expression "*(int *)(iVar7 + 0x68)" * (cast_expression "(int *)(iVar7 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x68)" ( (binary_expression "iVar7 + 0x68" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" { (expression_statement "uVar8 = bfd_set_error_handler(FUN_0001df90);" (assignment_expression "uVar8 = bfd_set_error_handler(FUN_0001df90)" identifier = (call_expression "bfd_set_error_handler(FUN_0001df90)" identifier (argument_list "(FUN_0001df90)" ( identifier )))) ;) })) (expression_statement "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0xac)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar7,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" { (if_statement "if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" if (parenthesized_expression "(DAT_00093d30 != 0)" ( (binary_expression "DAT_00093d30 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" identifier (argument_list "(uVar14,iVar7)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00029904;" goto statement_identifier ;) })) (labeled_statement "LAB_00028aaa:\n        bfd_set_error_handler(uVar8);" statement_identifier : (expression_statement "bfd_set_error_handler(uVar8);" (call_expression "bfd_set_error_handler(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;)) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;) })) (labeled_statement "LAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;" statement_identifier : (if_statement "if (DAT_00093d30 == 0) goto LAB_00028aaa;" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028aaa;" goto 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_r0x00029918;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0) goto LAB_00028a63;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00028a63;" goto statement_identifier ;)) (labeled_statement "LAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (DAT_00093d30 == 0) goto LAB_00028ac0;" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar8 = bfd_printable_name(DAT_00093cb4);" (assignment_expression "uVar8 = bfd_printable_name(DAT_00093cb4)" identifier = (call_expression "bfd_printable_name(DAT_00093cb4)" identifier (argument_list "(DAT_00093cb4)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_printable_name(iVar7);" (assignment_expression "uVar14 = bfd_printable_name(iVar7)" identifier = (call_expression "bfd_printable_name(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8)" identifier (argument_list "(uVar20,uVar14,iVar7,uVar8)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" if (parenthesized_expression "(DAT_00093d74 != 0)" ( (binary_expression "DAT_00093d74 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (while_statement "while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" while (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      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" { (while_statement "while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" while (parenthesized_expression "(iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0" (assignment_expression "iVar7 = 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 "iVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" { (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) goto LAB_00028bc4;" 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_00028bc4;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *(int *)(iVar7 + 0x2c);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar7 + 0x30);" (assignment_expression "uVar14 = *(undefined4 *)(iVar7 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = (char *)xmalloc(iVar11);" (assignment_expression "pcVar12 = (char *)xmalloc(iVar11)" identifier = (cast_expression "(char *)xmalloc(iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);" (assignment_expression "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" identifier = (call_expression "bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" identifier (argument_list "(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" identifier (argument_list "(uVar14,iVar7)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar13 = pcVar12 + iVar11;" (assignment_expression "pcVar13 = pcVar12 + iVar11" identifier = (binary_expression "pcVar12 + iVar11" identifier + identifier)) ;) (for_statement "for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" for ( ; (binary_expression "pcVar12 < pcVar13" identifier < identifier) ; (assignment_expression "pcVar12 = pcVar12 + sVar9 + 1" identifier = (binary_expression "pcVar12 + sVar9 + 1" (binary_expression "pcVar12 + sVar9" identifier + identifier) + number_literal)) ) (compound_statement "{\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" { (expression_statement "uVar8 = FUN_00028150(uVar8,pcVar12,0,0);" (assignment_expression "uVar8 = FUN_00028150(uVar8,pcVar12,0,0)" identifier = (call_expression "FUN_00028150(uVar8,pcVar12,0,0)" identifier (argument_list "(uVar8,pcVar12,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( 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 *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" statement_identifier : (expression_statement "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" (assignment_expression "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0)" identifier = (call_expression "FUN_00028150(0,&DAT_0004dff8,0,0)" identifier (argument_list "(0,&DAT_0004dff8,0,0)" ( number_literal , (pointer_expression "&DAT_0004dff8" & identifier) , number_literal , number_literal )))) ;)) (expression_statement "iVar7 = xcalloc(1,0x3c);" (assignment_expression "iVar7 = xcalloc(1,0x3c)" identifier = (call_expression "xcalloc(1,0x3c)" identifier (argument_list "(1,0x3c)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(iVar7 + 0x38) = FUN_0001ecc0;" (assignment_expression "*(code **)(iVar7 + 0x38) = FUN_0001ecc0" (pointer_expression "*(code **)(iVar7 + 0x38)" * (cast_expression "(code **)(iVar7 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000283d0(DAT_00093d74,iVar7,0);" (call_expression "FUN_000283d0(DAT_00093d74,iVar7,0)" identifier (argument_list "(DAT_00093d74,iVar7,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0002ba20();" (call_expression "FUN_0002ba20()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = PTR__sch_istable_00092f98;" (assignment_expression "puVar17 = PTR__sch_istable_00092f98" identifier = identifier) ;) (if_statement "if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_00093d8c != 0)" ( (binary_expression "DAT_00093d8c != 0" identifier != number_literal) )) (compound_statement "{\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" { (expression_statement "local_54 = DAT_00093cbc;" (assignment_expression "local_54 = DAT_00093cbc" identifier = identifier) ;) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" if (parenthesized_expression "(DAT_00093cbc != 0)" ( (binary_expression "DAT_00093cbc != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" { (do_statement "do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);" do (compound_statement "{\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      }" { (for_statement "for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" for ( (assignment_expression "puVar15 = *(undefined4 **)(local_54 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(local_54 + 0x60)" * (cast_expression "(undefined4 **)(local_54 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_54 + 0x60)" ( (binary_expression "local_54 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ) (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" { (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" { (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" identifier = (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "bVar21 = *pbVar3;" (assignment_expression "bVar21 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (if_statement "if (bVar21 == 0) break;" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar21 * 2]" identifier [ (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" while (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)))" ( (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))" ( (binary_expression "(bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" ( (binary_expression "bVar2 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar21 == 0x5f)" ( (binary_expression "bVar21 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" { (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19;" (assignment_expression "bVar21 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (if_statement "if (bVar21 == 0) goto LAB_0002a660;" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a660;" goto statement_identifier ;)) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar21 * 2]" identifier [ (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a640;" goto statement_identifier ;)) })) (labeled_statement "LAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);" statement_identifier : (expression_statement "sVar9 = strlen((char *)pbVar3);" (assignment_expression "sVar9 = 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 "pcVar12 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 10)" identifier (argument_list "(sVar9 + 10)" ( (binary_expression "sVar9 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar12 = cVar1;" (assignment_expression "*pcVar12 = cVar1" (pointer_expression "*pcVar12" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" identifier (argument_list "(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" ( (binary_expression "pcVar12 + (cVar1 != '\0')" identifier + (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12[1] = cVar1;" (assignment_expression "pcVar12[1] = cVar1" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" identifier (argument_list "(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" ( (binary_expression "pcVar12 + (2 - (uint)(cVar1 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar1 == '\0'))" ( (binary_expression "2 - (uint)(cVar1 == '\0')" number_literal - (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);" statement_identifier : (expression_statement "local_54 = *(int *)(local_54 + 0x9c);" (assignment_expression "local_54 = *(int *)(local_54 + 0x9c)" identifier = (pointer_expression "*(int *)(local_54 + 0x9c)" * (cast_expression "(int *)(local_54 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x9c)" ( (binary_expression "local_54 + 0x9c" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )) ;) })) })) (expression_statement "FUN_00025190(1);" (call_expression "FUN_00025190(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar15 = DAT_0009384c;" (assignment_expression "puVar15 = DAT_0009384c" identifier = identifier) ;) (labeled_statement "joined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    }" { (if_statement "if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" if (parenthesized_expression "(puVar15[3] != 0)" ( (binary_expression "puVar15[3] != 0" (subscript_expression "puVar15[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" { (expression_statement "FUN_00030910(puVar15[3]);" (call_expression "FUN_00030910(puVar15[3])" identifier (argument_list "(puVar15[3])" ( (subscript_expression "puVar15[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar14 = DAT_00093e38;" (assignment_expression "uVar14 = DAT_00093e38" identifier = identifier) ;) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" identifier = identifier) ;) (if_statement "if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" if (parenthesized_expression "(DAT_00093e44 == 0)" ( (binary_expression "DAT_00093e44 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" else (compound_statement "{\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" { (expression_statement "puVar15[10] = DAT_00093e38;" (assignment_expression "puVar15[10] = DAT_00093e38" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[4] = uVar8;" (assignment_expression "puVar15[4] = uVar8" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[5] = uVar14;" (assignment_expression "puVar15[5] = uVar14" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[9] = uVar8;" (assignment_expression "puVar15[9] = uVar8" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" if (parenthesized_expression "(puVar15[8] != 0)" ( (binary_expression "puVar15[8] != 0" (subscript_expression "puVar15[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" { (expression_statement "FUN_00030910(puVar15[8]);" (call_expression "FUN_00030910(puVar15[8])" identifier (argument_list "(puVar15[8])" ( (subscript_expression "puVar15[8]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" identifier = identifier) ;) (if_statement "if (DAT_00093e44 == 0) goto LAB_00028dd0;" if (parenthesized_expression "(DAT_00093e44 == 0)" ( (binary_expression "DAT_00093e44 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028dd0;" goto statement_identifier ;)) (expression_statement "puVar15[7] = DAT_00093e38;" (assignment_expression "puVar15[7] = DAT_00093e38" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[6] = uVar8;" (assignment_expression "puVar15[6] = uVar8" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" identifier = (cast_expression "(undefined4 *)puVar15[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (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_00093e20 = 0;" (assignment_expression "DAT_00093e20 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" if (parenthesized_expression "(((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))))" ( (binary_expression "((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" (parenthesized_expression "((DAT_00093c87 & 0x20) == 0)" ( (binary_expression "(DAT_00093c87 & 0x20) == 0" (parenthesized_expression "(DAT_00093c87 & 0x20)" ( (binary_expression "DAT_00093c87 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))" ( (binary_expression "(DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)" (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_00093d20 != 0)" ( (binary_expression "DAT_00093d20 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" { (if_statement "if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" if (parenthesized_expression "(DAT_00093dac == 0)" ( (binary_expression "DAT_00093dac == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" else (compound_statement "{\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" { (if_statement "if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093dac == 2)" ( (binary_expression "DAT_00093dac == 2" identifier == number_literal) )) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,local_20)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "FUN_00025db0();" (call_expression "FUN_00025db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar21 = DAT_00093c80;" (assignment_expression "bVar21 = DAT_00093c80" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c80 & 3) == 2)" ( (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "iVar7 = *(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 "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x2000)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" if (parenthesized_expression "((bVar21 & 0x40) != 0)" ( (binary_expression "(bVar21 & 0x40) != 0" (parenthesized_expression "(bVar21 & 0x40)" ( (binary_expression "bVar21 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x184)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00093cb4,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;) })) (expression_statement "iVar7 = DAT_00093cbc;" (assignment_expression "iVar7 = DAT_00093cbc" identifier = identifier) ;) (if_statement "if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c86 & 0x20) != 0)" ( (binary_expression "(DAT_00093c86 & 0x20) != 0" (parenthesized_expression "(DAT_00093c86 & 0x20)" ( (binary_expression "DAT_00093c86 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" { (for_statement "for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" for ( ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x9c)" * (cast_expression "(int *)(iVar7 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x9c)" ( (binary_expression "iVar7 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" { (expression_statement "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80)" identifier = (call_expression "bfd_link_check_relocs(iVar7,&DAT_00093c80)" identifier (argument_list "(iVar7,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00093d84 = 0;\n      }" { (expression_statement "DAT_00093d84 = 0;" (assignment_expression "DAT_00093d84 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_00031410();" (call_expression "FUN_00031410()" 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_0001e100();" (call_expression "FUN_0001e100()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025ed0();" (call_expression "FUN_00025ed0()" 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_00093c40;" (assignment_expression "piVar24 = (int *)*DAT_00093c40" identifier = (cast_expression "(int *)*DAT_00093c40" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00093c40" * identifier))) ;) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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_00028f94:\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_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }" else (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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 "piVar32 = DAT_00093c40;" (assignment_expression "piVar32 = DAT_00093c40" identifier = identifier) ;) (while_statement "while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" while (parenthesized_expression "(piVar16 = piVar24, piVar24[1] == 0)" ( (comma_expression "piVar16 = piVar24, piVar24[1] == 0" (assignment_expression "piVar16 = 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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" { (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar16 = (int *)*piVar32;" (assignment_expression "piVar16 = (int *)*piVar32" identifier = (cast_expression "(int *)*piVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar32" * 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_00028f8a;" 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_00028f8a;" goto statement_identifier ;)) (labeled_statement "LAB_00028f8c:\n      piVar24 = (int *)*piVar16;" statement_identifier : (expression_statement "piVar24 = (int *)*piVar16;" (assignment_expression "piVar24 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;)) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" identifier = identifier) ;) (expression_statement "piVar32 = piVar16;" (assignment_expression "piVar32 = piVar16" identifier = identifier) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028f94;" 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_00028f94;" goto statement_identifier ;)) })) (if_statement "if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }" if (parenthesized_expression "(piVar24[1] != 0xe)" ( (binary_expression "piVar24[1] != 0xe" (subscript_expression "piVar24[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }" { (labeled_statement "LAB_00028f8a:\n      piVar26 = piVar27;" statement_identifier : (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;)) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (expression_statement "iVar7 = FUN_00023550(piVar24[2],0,0);" (assignment_expression "iVar7 = FUN_00023550(piVar24[2],0,0)" identifier = (call_expression "FUN_00023550(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 (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" { (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 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          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }" { (do_statement "do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);" do (compound_statement "{\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        }" { (expression_statement "iVar7 = *(int *)(iVar7 + 0x14);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x14)" identifier = (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00029066;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029066;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(iVar7 + 0x48) < 0)" ( (binary_expression "*(int *)(iVar7 + 0x48) < 0" (pointer_expression "*(int *)(iVar7 + 0x48)" * (cast_expression "(int *)(iVar7 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x48)" ( (binary_expression "iVar7 + 0x48" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\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        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }" { (expression_statement "iVar11 = piVar27[5];" (assignment_expression "iVar11 = piVar27[5]" identifier = (subscript_expression "piVar27[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar23[4];" (assignment_expression "iVar10 = piVar23[4]" identifier = (subscript_expression "piVar23[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar11 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }" { (expression_statement "DAT_00093c44 = (int *)(iVar11 + 0x10);" (assignment_expression "DAT_00093c44 = (int *)(iVar11 + 0x10)" identifier = (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_00029bab;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029bab;" goto statement_identifier ;)) (labeled_statement "LAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;" statement_identifier : (expression_statement "*(int **)(iVar11 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar11 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar11 + 0x14)" * (cast_expression "(int **)(iVar11 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" else (compound_statement "{\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" { (expression_statement "*(int *)(iVar10 + 0x14) = iVar11;" (assignment_expression "*(int *)(iVar10 + 0x14) = iVar11" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002996d;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002996d;" goto statement_identifier ;)) (labeled_statement "LAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;" statement_identifier : (expression_statement "DAT_00093c44 = piVar23 + 4;" (assignment_expression "DAT_00093c44 = piVar23 + 4" identifier = (binary_expression "piVar23 + 4" identifier + number_literal)) ;)) }))) (expression_statement "piVar27[5] = iVar7;" (assignment_expression "piVar27[5] = iVar7" (subscript_expression "piVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar7 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar7 + 0x10)" * (cast_expression "(int **)(iVar7 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }" if (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0))" ( (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0))" ( (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)" (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar25 + 0xac) != 0)" ( (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" * (cast_expression "(int *)(iVar25 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xac)" ( (binary_expression "iVar25 + 0xac" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar10 = iVar25, iVar11 == 0)" ( (comma_expression "iVar10 = iVar25, iVar11 == 0" (assignment_expression "iVar10 = iVar25" identifier = identifier) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            iVar11 = iVar25;\n          }" { (expression_statement "iVar11 = iVar25;" (assignment_expression "iVar11 = 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 (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar7 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)(iVar7 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar7 + 0x14)" identifier = (pointer_expression "*(int **)(iVar7 + 0x14)" * (cast_expression "(int **)(iVar7 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              }" { (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;" if (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0))" ( (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 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 + 0xac) != 0)" ( (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" * (cast_expression "(int *)(iVar25 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xac)" ( (binary_expression "iVar25 + 0xac" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_000299ca;" 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_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" else (compound_statement "{\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" { (labeled_statement "LAB_000299ca:\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 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" if (parenthesized_expression "(iVar25 != iVar10)" ( (binary_expression "iVar25 != iVar10" identifier != identifier) )) (compound_statement "{\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" { (expression_statement "iVar7 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00093cb4 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" * (cast_expression "(int *)(DAT_00093cb4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" else (compound_statement "{\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" { (expression_statement "*(int *)(iVar7 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar7;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar7" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" * (cast_expression "(int *)(DAT_00093cb4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 100)" ( (binary_expression "DAT_00093cb4 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" else (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" { (expression_statement "*(int *)(iVar28 + 0x10) = iVar7;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar7" (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 "iVar7 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar7 = *(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 *)(iVar10 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar10;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar10" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" * (cast_expression "(int *)(DAT_00093cb4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 100)" ( (binary_expression "DAT_00093cb4 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" else (compound_statement "{\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" { (expression_statement "*(int *)(iVar7 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int *)(iVar11 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 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) = iVar11;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar11" (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_0001ddf0();" (assignment_expression "piVar24 = (int *)FUN_0001ddf0()" identifier = (cast_expression "(int *)FUN_0001ddf0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ddf0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar7 = *DAT_00093c40;" (assignment_expression "iVar7 = *DAT_00093c40" identifier = (pointer_expression "*DAT_00093c40" * identifier)) ;) (expression_statement "*DAT_00093c40 = *(int *)*piVar32;" (assignment_expression "*DAT_00093c40 = *(int *)*piVar32" (pointer_expression "*DAT_00093c40" * identifier) = (pointer_expression "*(int *)*piVar32" * (cast_expression "(int *)*piVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar32" * identifier)))) ;) (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar32 = iVar11;" (assignment_expression "*piVar32 = iVar11" (pointer_expression "*piVar32" * identifier) = identifier) ;) (if_statement "if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_000938ac = piVar32;\n      }" { (expression_statement "DAT_000938ac = piVar32;" (assignment_expression "DAT_000938ac = piVar32" identifier = identifier) ;) })) (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (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 "piVar16 = DAT_00093c40;" (assignment_expression "piVar16 = DAT_00093c40" identifier = identifier) ;) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (labeled_statement "LAB_00029066:\n    iVar7 = piVar24[2];" statement_identifier : (expression_statement "iVar7 = piVar24[2];" (assignment_expression "iVar7 = piVar24[2]" identifier = (subscript_expression "piVar24[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar8,iVar7)" identifier (argument_list "(uVar8,iVar7)" ( identifier , identifier ))) ;) }))) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal)) ;) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_000937fc" 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    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar15 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar15 = *(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_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      }" { (if_statement "if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" if (parenthesized_expression "(puVar15[0x15] == 0)" ( (binary_expression "puVar15[0x15] == 0" (subscript_expression "puVar15[0x15]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" { (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;" 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_r0x000290dc;" goto statement_identifier ;)) (expression_statement "iVar7 = FUN_0001f130();" (assignment_expression "iVar7 = FUN_0001f130()" identifier = (call_expression "FUN_0001f130()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar38 = iVar7 == 0;" (assignment_expression "bVar38 = iVar7 == 0" identifier = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }" { (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" identifier = (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar33 = (byte *)"COMMON";" (assignment_expression "pbVar33 = (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 (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" identifier = (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" identifier = (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" if (parenthesized_expression "((!bVar37 && !bVar38) == bVar37)" ( (binary_expression "(!bVar37 && !bVar38) == bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" ( (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }" { (if_statement "if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" if (parenthesized_expression "(((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0))" ( (binary_expression "((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)" (parenthesized_expression "((DAT_00093c80 & 3) != 2)" ( (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_00093d20 != 0)" ( (binary_expression "DAT_00093d20 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" { (if_statement "if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" if (parenthesized_expression "(DAT_000938c0 == 0)" ( (binary_expression "DAT_000938c0 == 0" identifier == number_literal) )) (compound_statement "{\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" { (expression_statement "DAT_000938c0 = FUN_00023550(".bss",0,1);" (assignment_expression "DAT_000938c0 = FUN_00023550(".bss",0,1)" identifier = (call_expression "FUN_00023550(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) })) (expression_statement "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);" (call_expression "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" identifier (argument_list "(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" ( (binary_expression "DAT_000938c0 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" else (if_statement "if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" if (parenthesized_expression "(DAT_00093d9c == 1)" ( (binary_expression "DAT_00093d9c == 1" identifier == number_literal) )) (compound_statement "{\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }" { (expression_statement "iVar7 = FUN_00023550("/DISCARD/",0,1);" (assignment_expression "iVar7 = FUN_00023550("/DISCARD/",0,1)" identifier = (call_expression "FUN_00023550("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" if (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" ( (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" ( (binary_expression "*(byte *)(puVar15 + 5) & 3" (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                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" { (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" identifier = (call_expression "FUN_000307b0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" identifier (argument_list "(iVar7 + 8,puVar15,0,iVar7)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" else (compound_statement "{\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" { (if_statement "if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" if (parenthesized_expression "(DAT_00093d9c == 3)" ( (binary_expression "DAT_00093d9c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" { (expression_statement "uVar8 = puVar15[0x2b];" (assignment_expression "uVar8 = puVar15[0x2b]" identifier = (subscript_expression "puVar15[0x2b]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,puVar15,uVar8);" (call_expression "FUN_00032ba0(uVar14,puVar15,uVar8)" identifier (argument_list "(uVar14,puVar15,uVar8)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }" if (parenthesized_expression "((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0))" ( (binary_expression "(DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)" (parenthesized_expression "(DAT_00093db8 == 0)" ( (binary_expression "DAT_00093db8 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_000210f0(), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_000210f0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_000210f0()" identifier = (call_expression "FUN_000210f0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar8 = 0;\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar8 = 0x17e;\n              }" else (compound_statement "{\n                uVar8 = 0x17e;\n              }" { (expression_statement "uVar8 = 0x17e;" (assignment_expression "uVar8 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);" (assignment_expression "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8)" identifier = (call_expression "FUN_00031560(puVar15,pbVar3,uVar8)" identifier (argument_list "(puVar15,pbVar3,uVar8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" { (expression_statement "iVar7 = FUN_00023550(pbVar3,uVar8,1);" (assignment_expression "iVar7 = FUN_00023550(pbVar3,uVar8,1)" identifier = (call_expression "FUN_00023550(pbVar3,uVar8,1)" identifier (argument_list "(pbVar3,uVar8,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" if (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" ( (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" ( (binary_expression "*(byte *)(puVar15 + 5) & 3" (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                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" { (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" identifier = (call_expression "FUN_000307b0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" identifier (argument_list "(iVar7 + 8,puVar15,0,iVar7)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) (if_statement "if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" if (parenthesized_expression "(DAT_00093d9c == 2)" ( (binary_expression "DAT_00093d9c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" { (expression_statement "uVar8 = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar7 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = puVar15[0x2b];" (assignment_expression "uVar14 = puVar15[0x2b]" identifier = (subscript_expression "puVar15[0x2b]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,puVar15,uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar20,puVar15,uVar14,uVar8)" identifier (argument_list "(uVar20,puVar15,uVar14,uVar8)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            puVar15[0x15] = puVar17;\n          }" else (compound_statement "{\n            puVar15[0x15] = puVar17;\n          }" { (expression_statement "puVar15[0x15] = puVar17;" (assignment_expression "puVar15[0x15] = puVar17" (subscript_expression "puVar15[0x15]" identifier [ number_literal ]) = identifier) ;) }))) })) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (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 "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) (if_statement "if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18c)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00093cb4,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;) (expression_statement "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");" (assignment_expression "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_00093cb4,".text")" identifier (argument_list "(DAT_00093cb4,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }" { (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }) (else_clause "else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" else (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" { (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (if_statement "if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" if (parenthesized_expression "(DAT_00093db0 == 0)" ( (binary_expression "DAT_00093db0 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" else (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" for ( ; (comma_expression "DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_0009382c = piVar24" identifier = identifier) , (comma_expression "DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_00093cb4 = iVar7" 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    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" { (expression_statement "iVar7 = piVar26[5];" (assignment_expression "iVar7 = piVar26[5]" identifier = (subscript_expression "piVar26[5]" identifier [ number_literal ])) ;) (if_statement "if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" if (parenthesized_expression "((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))))" ( (binary_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))" (parenthesized_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" ( (binary_expression "((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar7 != 0) && (piVar26[9] == 0))" ( (binary_expression "(iVar7 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 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 *)(iVar7 + 0x20))))" ( (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))" ( (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(piVar26[8] == *(int *)(iVar7 + 0x20))" ( (binary_expression "piVar26[8] == *(int *)(iVar7 + 0x20)" (subscript_expression "piVar26[8]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" { (expression_statement "piVar26[9] = *(int *)(iVar7 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar7 + 0x24)" (subscript_expression "piVar26[9]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x24)" * (cast_expression "(int *)(iVar7 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) })) (if_statement "if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "((DAT_00093d8c != 0) && (DAT_00093828 != 0))" ( (binary_expression "(DAT_00093d8c != 0) && (DAT_00093828 != 0)" (parenthesized_expression "(DAT_00093d8c != 0)" ( (binary_expression "DAT_00093d8c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00093828 != 0)" ( (binary_expression "DAT_00093828 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar26 = piVar24 + DAT_00093828;" (assignment_expression "piVar26 = piVar24 + DAT_00093828" identifier = (binary_expression "piVar24 + DAT_00093828" identifier + identifier)) ;) (do_statement "do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    }" { (while_statement "while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" while (parenthesized_expression "(iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0)" ( (comma_expression "iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) , (binary_expression "(*(byte *)(iVar11 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xd) & 8)" ( (binary_expression "*(byte *)(iVar11 + 0xd) & 8" (pointer_expression "*(byte *)(iVar11 + 0xd)" * (cast_expression "(byte *)(iVar11 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xd)" ( (binary_expression "iVar11 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" { (expression_statement "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];" (assignment_expression "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(iVar11 + 0x14))[0x15]" (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x14))" ( (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" if (parenthesized_expression "(((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           )" ( (binary_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7))" ( (binary_expression "(puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar15[0x2b] != iVar7)" ( (binary_expression "puVar15[0x2b] != iVar7" (subscript_expression "puVar15[0x2b]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" ( (comma_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0" (assignment_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" identifier = (call_expression "strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" identifier (argument_list "((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" ( (cast_expression "(char *)**(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar11 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" { (expression_statement "*(undefined1 *)(iVar11 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0xc)" * (cast_expression "(undefined1 *)(iVar11 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 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_00029327;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_00029327;" 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_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" statement_identifier : (if_statement "if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" { (for_statement "for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" for ( (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" { (expression_statement "pcVar12 = (char *)*puVar15;" (assignment_expression "pcVar12 = (char *)*puVar15" identifier = (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar13 = (char *)xmalloc(sVar9 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 10)" identifier (argument_list "(sVar9 + 10)" ( (binary_expression "sVar9 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar13,".startof.%s",pcVar12);" (call_expression "sprintf(pcVar13,".startof.%s",pcVar12)" identifier (argument_list "(pcVar13,".startof.%s",pcVar12)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "builtin_strncpy(pcVar13 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar13 + 1,".size",5)" identifier (argument_list "(pcVar13 + 1,".size",5)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) })) }))) (expression_statement "FUN_00031450();" (call_expression "FUN_00031450()" 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_64 = (void *)xmalloc(0x28);" (assignment_expression "local_64 = (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 (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" for ( (assignment_expression "puVar15 = DAT_00093c38" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" { (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" for ( (assignment_expression "piVar26 = DAT_00093c40" 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }" { (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" if (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))))" ( (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)))" ( (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))" ( (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)" ( (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar27 = piVar26" identifier = identifier) , (comma_expression "piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar23 = piVar24" identifier = identifier) , (binary_expression "puVar15[2] != 3" (subscript_expression "puVar15[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" { (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\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_000293ea;\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_000293ea;" 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_000293ea;" 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 "uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) }) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }" else (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }" { (labeled_statement "LAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" statement_identifier : (expression_statement "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" (assignment_expression "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1])" identifier = (call_expression "strcmp((char *)piVar23[1],(char *)puVar15[1])" identifier (argument_list "((char *)piVar23[1],(char *)puVar15[1])" ( (cast_expression "(char *)piVar23[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar15[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar29 = local_44;" (assignment_expression "uVar29 = local_44" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" { (if_statement "if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_6c)" ( (binary_expression "local_44 <= local_6c" identifier <= identifier) )) (compound_statement "{\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" { (expression_statement "uVar29 = local_44 * 2;" (assignment_expression "uVar29 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_64 = (void *)xrealloc(local_64,local_44 << 3);" (assignment_expression "local_64 = (void *)xrealloc(local_64,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_64,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_64,local_44 << 3)" identifier (argument_list "(local_64,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_64 + (int)local_6c * 4)" * (cast_expression "(int *)((int)local_64 + (int)local_6c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + (int)local_6c * 4)" ( (binary_expression "(int)local_64 + (int)local_6c * 4" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "local_6c = (int *)((int)local_6c + 1);" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" identifier = (cast_expression "(int *)((int)local_6c + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "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 = uVar29;" (assignment_expression "local_44 = uVar29" identifier = identifier) ;) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" if (parenthesized_expression "(puVar15[6] != 0)" ( (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" { (expression_statement "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");" (assignment_expression "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags")" identifier = (call_expression "FUN_00030fd0(puVar15[6],0,0,"phdr flags")" identifier (argument_list "(puVar15[6],0,0,"phdr flags")" ( (subscript_expression "puVar15[6]" identifier [ number_literal ]) , number_literal , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar40 = 0;" (assignment_expression "uVar40 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" { (expression_statement "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");" (assignment_expression "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address")" identifier = (call_expression "FUN_00030fd0(iVar7,0,0,"phdr load address")" identifier (argument_list "(iVar7,0,0,"phdr load address")" ( identifier , number_literal , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);" (assignment_expression "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" identifier = (call_expression "bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" identifier (argument_list "(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" ( identifier , (subscript_expression "puVar15[2]" identifier [ number_literal ]) , (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "iVar7 != 0" identifier != number_literal) , identifier , (subscript_expression "puVar15[3]" identifier [ number_literal ]) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) })) (expression_statement "free(local_64);" (call_expression "free(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (for_statement "for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_00093c40" 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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" { (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar38 = piVar26[2] == 0;" (assignment_expression "bVar38 = piVar26[2] == 0" identifier = (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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 "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar33 = (byte *)0x3f35d;" (assignment_expression "pbVar33 = (byte *)0x3f35d" identifier = (cast_expression "(byte *)0x3f35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" identifier = (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" identifier = (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;" if (parenthesized_expression "((!bVar37 && !bVar38) != bVar37)" ( (binary_expression "(!bVar37 && !bVar38) != bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" ( (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00029557;" 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_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2))" ( (binary_expression "((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)" (parenthesized_expression "((DAT_00093c82._1_1_ & 0x10) != 0)" ( (binary_expression "(DAT_00093c82._1_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 0x10)" ( (binary_expression "DAT_00093c82._1_1_ & 0x10" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00093c80 & 3) != 2)" ( (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_000261d0();" (call_expression "FUN_000261d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }" { (expression_statement "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;" (assignment_expression "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) = (binary_expression "DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "FUN_000269b0(0,1 < DAT_00093c98);" (call_expression "FUN_000269b0(0,1 < DAT_00093c98)" identifier (argument_list "(0,1 < DAT_00093c98)" ( number_literal , (binary_expression "1 < DAT_00093c98" number_literal < identifier) ))) ;) (expression_statement "FUN_00031430();" (call_expression "FUN_00031430()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) (expression_statement "uVar29 = DAT_0009386c;" (assignment_expression "uVar29 = DAT_0009386c" identifier = identifier) ;) (if_statement "if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "(DAT_00093828 != 0)" ( (binary_expression "DAT_00093828 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar24 = DAT_0009382c + DAT_00093828;" (assignment_expression "piVar24 = DAT_0009382c + DAT_00093828" identifier = (binary_expression "DAT_0009382c + DAT_00093828" identifier + identifier)) ;) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal)) ;) (expression_statement "piVar26 = DAT_0009382c;" (assignment_expression "piVar26 = DAT_0009382c" identifier = identifier) ;) (do_statement "do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    }" { (while_statement "while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" while (parenthesized_expression "(iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3)" ( (comma_expression "iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar11 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) , (binary_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff)" ( (binary_expression "*(ushort *)(iVar11 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar11 + 0xc)" * (cast_expression "(ushort *)(iVar11 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" { (expression_statement "pcVar12 = *(char **)(iVar11 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar11 + 4)" identifier = (pointer_expression "*(char **)(iVar11 + 4)" * (cast_expression "(char **)(iVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_5c._0_1_ = (byte)uVar29;" (assignment_expression "local_5c._0_1_ = (byte)uVar29" (field_expression "local_5c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar12 != '.')" ( (binary_expression "*pcVar12 != '.'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" { (expression_statement "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(iVar7 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar7 + 4) + 0x18" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);" (assignment_expression "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54)" identifier = (pointer_expression "*(int *)(*(int *)(iVar11 + 0x14) + 0x54)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x14) + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x54)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x54" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar11 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" if (parenthesized_expression "(pcVar12[(cVar1 != '\0') + 4] == 'o')" ( (binary_expression "pcVar12[(cVar1 != '\0') + 4] == 'o'" (subscript_expression "pcVar12[(cVar1 != '\0') + 4]" identifier [ (binary_expression "(cVar1 != '\0') + 4" (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" { (expression_statement "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x2c)" * (cast_expression "(uint *)(iVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "*(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))))) ;) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" identifier = identifier) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar12[2] != 'i') break;" if (parenthesized_expression "(pcVar12[2] != 'i')" ( (binary_expression "pcVar12[2] != 'i'" (subscript_expression "pcVar12[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x30)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x30" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar34 = uVar30 >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = uVar30 >> ((byte)local_5c & 0x1f)" identifier = (binary_expression "uVar30 >> ((byte)local_5c & 0x1f)" identifier >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x2c)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x2c" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "uVar30 << 0x20 - ((byte)local_5c & 0x1f)" identifier << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))))) ;) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" identifier = identifier) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) })) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(iVar11 + 0x14) = puVar17;" (assignment_expression "*(undefined **)(iVar11 + 0x14) = puVar17" (pointer_expression "*(undefined **)(iVar11 + 0x14)" * (cast_expression "(undefined **)(iVar11 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar24 == piVar26) goto LAB_000296b8;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_000296b8;" 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_000296b8:\n  FUN_00025190(4);" statement_identifier : (expression_statement "FUN_00025190(4);" (call_expression "FUN_00025190(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00031490();" (call_expression "FUN_00031490()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031320();" (call_expression "FUN_00031320()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) (if_statement "if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" if (parenthesized_expression "(DAT_00093d38 != '\0')" ( (binary_expression "DAT_00093d38 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" { (expression_statement "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);" (assignment_expression "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_00093cb4)" identifier (argument_list "(DAT_00093cb4)" ( identifier )))) ;) (expression_statement "uVar35 = iVar7 - 1U >> 5 & 1;" (assignment_expression "uVar35 = iVar7 - 1U >> 5 & 1" identifier = (binary_expression "iVar7 - 1U >> 5 & 1" (binary_expression "iVar7 - 1U >> 5" (binary_expression "iVar7 - 1U" identifier - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar39 = (byte)(iVar7 - 1U);" (assignment_expression "bVar39 = (byte)(iVar7 - 1U)" identifier = (call_expression "(byte)(iVar7 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar7 - 1U)" ( (binary_expression "iVar7 - 1U" identifier - number_literal) )))) ;) (expression_statement "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);" (assignment_expression "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f)" identifier = (binary_expression "(uVar35 ^ 1) << (bVar39 & 0x1f)" (parenthesized_expression "(uVar35 ^ 1)" ( (binary_expression "uVar35 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar39 & 0x1f)" ( (binary_expression "bVar39 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "iVar7 = uVar29 * 2;" (assignment_expression "iVar7 = uVar29 * 2" identifier = (binary_expression "uVar29 * 2" identifier * number_literal)) ;) (expression_statement "uVar30 = iVar7 - 1;" (assignment_expression "uVar30 = iVar7 - 1" identifier = (binary_expression "iVar7 - 1" identifier - number_literal)) ;) (expression_statement "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);" (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);" (assignment_expression "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" identifier = (binary_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" (parenthesized_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1)" ( (binary_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1" (parenthesized_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f)" ( (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f" (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1" (parenthesized_expression "(uVar35 << (bVar39 & 0x1f))" ( (binary_expression "uVar35 << (bVar39 & 0x1f)" identifier << (parenthesized_expression "(bVar39 & 0x1f)" ( (binary_expression "bVar39 & 0x1f" identifier & number_literal) ))) )) << number_literal) | (binary_expression "uVar29 >> 0x1f" identifier >> number_literal)) )) - number_literal) )) + (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      }" { (if_statement "if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" if (parenthesized_expression "((*(byte *)(puVar15 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 1)" ( (binary_expression "*(byte *)(puVar15 + 5) & 1" (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          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" { (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar15[0xb];" (assignment_expression "uVar34 = puVar15[0xb]" identifier = (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = uVar30 & uVar35 + uVar34;" (assignment_expression "uVar31 = uVar30 & uVar35 + uVar34" identifier = (binary_expression "uVar30 & uVar35 + uVar34" identifier & (binary_expression "uVar35 + uVar34" identifier + identifier))) ;) (expression_statement "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);" (assignment_expression "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" identifier = (binary_expression "uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" identifier & (binary_expression "puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" (binary_expression "puVar15[8] + puVar15[0xc]" (subscript_expression "puVar15[8]" identifier [ number_literal ]) + (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar35,uVar34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar35,uVar34)" identifier (argument_list "(uVar35,uVar34)" ( identifier , identifier ))))))) ;) (if_statement "if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18))" ( (binary_expression "(uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" (parenthesized_expression "(uVar36 == 0 && uVar31 == 0)" ( (binary_expression "uVar36 == 0 && uVar31 == 0" (binary_expression "uVar36 == 0" identifier == number_literal) && (binary_expression "uVar31 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" ( (comma_expression "uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (assignment_expression "uVar18 = uVar29 & puVar15[8]" identifier = (binary_expression "uVar29 & puVar15[8]" identifier & (subscript_expression "puVar15[8]" identifier [ number_literal ]))) , (binary_expression "uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (binary_expression "uVar18 <= uVar36" identifier <= identifier) && (binary_expression "(uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (call_expression "(uint)(uVar31 < (uVar30 & uVar35))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 < (uVar30 & uVar35))" ( (binary_expression "uVar31 < (uVar30 & uVar35)" identifier < (parenthesized_expression "(uVar30 & uVar35)" ( (binary_expression "uVar30 & uVar35" identifier & identifier) ))) ))) <= (binary_expression "uVar36 - uVar18" identifier - identifier)))) ))) )) (compound_statement "{\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar35 = puVar15[9];" (assignment_expression "uVar35 = puVar15[9]" identifier = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = uVar30 & uVar34 + uVar35;" (assignment_expression "uVar31 = uVar30 & uVar34 + uVar35" identifier = (binary_expression "uVar30 & uVar34 + uVar35" identifier & (binary_expression "uVar34 + uVar35" identifier + identifier))) ;) (expression_statement "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;" (assignment_expression "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" identifier = (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35)" (binary_expression "puVar15[0xc] + puVar15[10]" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) + (subscript_expression "puVar15[10]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar34,uVar35)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35)" identifier (argument_list "(uVar34,uVar35)" ( identifier , identifier ))))) & identifier)) ;) (if_statement "if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;" if (parenthesized_expression "((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))" ( (binary_expression "(uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" (parenthesized_expression "(uVar34 == 0 && uVar31 == 0)" ( (binary_expression "uVar34 == 0 && uVar31 == 0" (binary_expression "uVar34 == 0" identifier == number_literal) && (binary_expression "uVar31 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" ( (comma_expression "uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (assignment_expression "uVar36 = puVar15[10] & uVar29" identifier = (binary_expression "puVar15[10] & uVar29" (subscript_expression "puVar15[10]" identifier [ number_literal ]) & identifier)) , (binary_expression "uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (binary_expression "uVar36 <= uVar34" identifier <= identifier) && (binary_expression "(uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (call_expression "(uint)(uVar31 < (uVar35 & uVar30))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 < (uVar35 & uVar30))" ( (binary_expression "uVar31 < (uVar35 & uVar30)" identifier < (parenthesized_expression "(uVar35 & uVar30)" ( (binary_expression "uVar35 & uVar30" identifier & identifier) ))) ))) <= (binary_expression "uVar34 - uVar36" identifier - identifier)))) ))) )) (goto_statement "goto LAB_0002a1a0;" goto statement_identifier ;)) (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "pcVar12 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar12 = "%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            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "pcVar12 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar12 = "%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 "uVar14 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];" statement_identifier : (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_00093cb4 + 0x68))" ( (binary_expression "1 < *(uint *)(DAT_00093cb4 + 0x68)" number_literal < (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" * (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x68)" ( (binary_expression "DAT_00093cb4 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" { (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" identifier = (cast_expression "(int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" identifier (argument_list "(*(uint *)(DAT_00093cb4 + 0x68) << 3)" ( (binary_expression "*(uint *)(DAT_00093cb4 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" * (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x68)" ( (binary_expression "DAT_00093cb4 + 0x68" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(DAT_00093cb4 + 0x60);" (assignment_expression "iVar7 = *(int *)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" * (cast_expression "(int *)(DAT_00093cb4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" { (do_statement "do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);" do (compound_statement "{\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        }" { (if_statement "if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" if (parenthesized_expression "((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0))" ( (binary_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" (parenthesized_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 1" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0" (binary_expression "*(int *)(iVar7 + 0x30) != 0" (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(iVar7 + 0x2c) != 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" { (expression_statement "iVar11 = uVar29 * 2;" (assignment_expression "iVar11 = uVar29 * 2" identifier = (binary_expression "uVar29 * 2" identifier * number_literal)) ;) (expression_statement "uVar29 = uVar29 + 1;" (assignment_expression "uVar29 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;) (expression_statement "piVar24[iVar11] = iVar7;" (assignment_expression "piVar24[iVar11] = iVar7" (subscript_expression "piVar24[iVar11]" identifier [ identifier ]) = identifier) ;) (expression_statement "(piVar24 + iVar11)[1] = 0;" (assignment_expression "(piVar24 + iVar11)[1] = 0" (subscript_expression "(piVar24 + iVar11)[1]" (parenthesized_expression "(piVar24 + iVar11)" ( (binary_expression "piVar24 + iVar11" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" if (parenthesized_expression "(1 < uVar29)" ( (binary_expression "1 < uVar29" number_literal < identifier) )) (compound_statement "{\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" { (expression_statement "qsort(piVar24,uVar29,8,FUN_0001def0);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001def0)" identifier (argument_list "(piVar24,uVar29,8,FUN_0001def0)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_4c = (undefined4 *)0x0;" (assignment_expression "local_4c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);" do (compound_statement "{\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          }" { (while_statement "while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" while (parenthesized_expression "(puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0)" ( (comma_expression "puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar22 = (undefined4 *)*piVar26" identifier = (cast_expression "(undefined4 *)*piVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) , (comma_expression "puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar6 = puVar15" identifier = identifier) , (comma_expression "uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar35 = local_5c" identifier = identifier) , (comma_expression "uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar34 = local_58" identifier = identifier) , (comma_expression "puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar4 = local_4c" identifier = identifier) , (comma_expression "uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar30 = local_48" identifier = identifier) , (binary_expression "(*(byte *)(puVar22 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar22 + 5) & 2)" ( (binary_expression "*(byte *)(puVar22 + 5) & 2" (pointer_expression "*(byte *)(puVar22 + 5)" * (cast_expression "(byte *)(puVar22 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 5)" ( (binary_expression "puVar22 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal))))))) )) (compound_statement "{\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" { (expression_statement "puVar4 = (undefined4 *)puVar22[9];" (assignment_expression "puVar4 = (undefined4 *)puVar22[9]" identifier = (cast_expression "(undefined4 *)puVar22[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar30 = puVar22[10];" (assignment_expression "uVar30 = puVar22[10]" identifier = (subscript_expression "puVar22[10]" identifier [ number_literal ])) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar22[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar22[0xb] >> bVar39" (cast_expression "(uint)puVar22[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar22[0xc] << 0x20 - bVar39" (subscript_expression "puVar22[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar35;" (assignment_expression "uVar34 = uVar35" identifier = identifier) ;) })) (expression_statement "uVar35 = uVar34 + ((int)puVar4 - 1U);" (assignment_expression "uVar35 = uVar34 + ((int)puVar4 - 1U)" identifier = (binary_expression "uVar34 + ((int)puVar4 - 1U)" identifier + (parenthesized_expression "((int)puVar4 - 1U)" ( (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(puVar4 != (undefined4 *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) + (cast_expression "(uint)CARRY4(uVar34,(int)puVar4 - 1U)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,(int)puVar4 - 1U)" identifier (argument_list "(uVar34,(int)puVar4 - 1U)" ( identifier , (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))))) ;) (expression_statement "puVar6 = puVar22;" (assignment_expression "puVar6 = puVar22" identifier = identifier) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" if (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)))" ( (binary_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30)" ( (binary_expression "uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < puVar4) <= local_58 - uVar30" (call_expression "(uint)(local_5c < puVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < puVar4)" ( (binary_expression "local_5c < puVar4" identifier < identifier) ))) <= (binary_expression "local_58 - uVar30" identifier - identifier))) )) || (parenthesized_expression "(local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" ( (binary_expression "local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 < local_48" identifier < identifier) || (binary_expression "local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 - local_48" identifier - identifier) < (call_expression "(uint)(local_5c < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_4c)" ( (binary_expression "local_5c < local_4c" identifier < identifier) ))))) ))) )) (compound_statement "{\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" { (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" identifier (argument_list "(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" ( identifier , identifier , identifier , identifier , 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) ;) (break_statement "break;" break ;) })) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" identifier = identifier) ;) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" identifier = identifier) ;) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" identifier = identifier) ;) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" identifier = identifier) ;) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" identifier = identifier) ;) (if_statement "if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;" if (parenthesized_expression "(piVar24 + uVar29 * 2 == piVar26)" ( (binary_expression "piVar24 + uVar29 * 2 == piVar26" (binary_expression "piVar24 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal)) == identifier) )) (goto_statement "goto LAB_0002a3c8;" goto statement_identifier ;)) })) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" identifier = identifier) ;) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" identifier = identifier) ;) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" identifier = identifier) ;) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" identifier = identifier) ;) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" identifier = identifier) ;) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + uVar29 * 2 != piVar26)" ( (binary_expression "piVar24 + uVar29 * 2 != piVar26" (binary_expression "piVar24 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal)) != identifier) )) ;) (labeled_statement "LAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);" statement_identifier : (expression_statement "qsort(piVar24,uVar29,8,FUN_0001df40);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001df40)" identifier (argument_list "(piVar24,uVar29,8,FUN_0001df40)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "puVar15 = (undefined4 *)*piVar24;" (assignment_expression "puVar15 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" identifier = number_literal) ;) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" identifier = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" identifier = identifier) ;) (do_statement "do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);" do (compound_statement "{\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          }" { (expression_statement "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);" (assignment_expression "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c)" identifier = (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x1c)" * (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[uVar36 * 2] + 0x1c)" ( (binary_expression "piVar24[uVar36 * 2] + 0x1c" (subscript_expression "piVar24[uVar36 * 2]" identifier [ (binary_expression "uVar36 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);" (assignment_expression "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20)" identifier = (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x20)" * (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[uVar36 * 2] + 0x20)" ( (binary_expression "piVar24[uVar36 * 2] + 0x20" (subscript_expression "piVar24[uVar36 * 2]" identifier [ (binary_expression "uVar36 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (if_statement "if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;" if (parenthesized_expression "(uVar34 == uVar5 && uVar31 == uVar18)" ( (binary_expression "uVar34 == uVar5 && uVar31 == uVar18" (binary_expression "uVar34 == uVar5" identifier == identifier) && (binary_expression "uVar31 == uVar18" identifier == identifier)) )) (goto_statement "goto LAB_0002a9b9;" goto statement_identifier ;)) (expression_statement "uVar36 = uVar36 + 1;" (assignment_expression "uVar36 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) (expression_statement "uVar34 = uVar5;" (assignment_expression "uVar34 = uVar5" identifier = identifier) ;) (expression_statement "uVar31 = uVar18;" (assignment_expression "uVar31 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar36 != uVar29)" ( (binary_expression "uVar36 != uVar29" identifier != identifier) )) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" identifier = identifier) ;) })) (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" identifier = (binary_expression "uVar34 + (uVar35 - 1)" identifier + (parenthesized_expression "(uVar35 - 1)" ( (binary_expression "uVar35 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )))) + (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35 - 1)" identifier (argument_list "(uVar34,uVar35 - 1)" ( identifier , (binary_expression "uVar35 - 1" identifier - number_literal) )))))) ;) (while_statement "while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" while (parenthesized_expression "(local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)" ( (comma_expression "local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_4c = puVar15" identifier = identifier) , (comma_expression "local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_50 = uVar30" identifier = identifier) , (comma_expression "local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_54 = uVar35" identifier = identifier) , (comma_expression "local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_58 = uVar34" identifier = identifier) , (comma_expression "local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_5c = uVar36" identifier = identifier) , (comma_expression "local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" identifier = (cast_expression "(int *)((int)local_6c + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "local_6c != (int *)uVar29" identifier != (cast_expression "(int *)uVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))))))) )) (compound_statement "{\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" { (expression_statement "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];" (assignment_expression "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2]" identifier = (cast_expression "(undefined4 *)piVar24[(int)local_6c * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[(int)local_6c * 2]" identifier [ (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" identifier = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" identifier = identifier) ;) })) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" identifier = (binary_expression "uVar34 + (uVar35 - 1)" identifier + (parenthesized_expression "(uVar35 - 1)" ( (binary_expression "uVar35 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )))) + (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35 - 1)" identifier (argument_list "(uVar34,uVar35 - 1)" ( identifier , (binary_expression "uVar35 - 1" identifier - number_literal) )))))) ;) (if_statement "if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" if (parenthesized_expression "((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))))" ( (binary_expression "(piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" (parenthesized_expression "(piVar24[(int)local_6c * 2 + 1] == 0)" ( (binary_expression "piVar24[(int)local_6c * 2 + 1] == 0" (subscript_expression "piVar24[(int)local_6c * 2 + 1]" identifier [ (binary_expression "(int)local_6c * 2 + 1" (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" ( (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))" ( (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < uVar35) <= local_58 - uVar30" (call_expression "(uint)(local_5c < uVar35)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < uVar35)" ( (binary_expression "local_5c < uVar35" identifier < identifier) ))) <= (binary_expression "local_58 - uVar30" identifier - identifier))) || (parenthesized_expression "(local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" ( (binary_expression "local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 < local_50" identifier < identifier) || (binary_expression "local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 - local_50" identifier - identifier) < (call_expression "(uint)(local_5c < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_54)" ( (binary_expression "local_5c < local_54" identifier < identifier) ))))) ))) )) ))) )) (compound_statement "{\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = *local_4c;" (assignment_expression "uVar14 = *local_4c" identifier = (pointer_expression "*local_4c" * identifier)) ;) (expression_statement "uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" identifier (argument_list "(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0002a9b9:\n          free(piVar24);" statement_identifier : (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;)) (for_statement "for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" for ( (assignment_expression "puVar22 = DAT_0009384c" identifier = identifier) ; (comma_expression "puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) , (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar22 = (undefined4 *)puVar22[2]" identifier = (cast_expression "(undefined4 *)puVar22[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" { (if_statement "if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" if (parenthesized_expression "(puVar22[0xe] != 0)" ( (binary_expression "puVar22[0xe] != 0" (subscript_expression "puVar22[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" { (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);" (assignment_expression "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4])" identifier = (binary_expression "puVar22[9] - (puVar22[6] + puVar22[4])" (subscript_expression "puVar22[9]" identifier [ number_literal ]) - (parenthesized_expression "(puVar22[6] + puVar22[4])" ( (binary_expression "puVar22[6] + puVar22[4]" (subscript_expression "puVar22[6]" identifier [ number_literal ]) + (subscript_expression "puVar22[4]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);" (assignment_expression "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,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",iVar7,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,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_00032ba0(uVar14,uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar14,uVar8,iVar7)" identifier (argument_list "(uVar14,uVar8,iVar7)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x000296eb;" goto statement_identifier ;) })) })) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" statement_identifier : (for_statement "for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" for ( ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[1]" identifier = (cast_expression "(undefined4 *)puVar15[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" { (expression_statement "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);" (assignment_expression "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" identifier (argument_list "(DAT_00093ca0,*puVar15,0,0,1)" ( identifier , (pointer_expression "*puVar15" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" if (parenthesized_expression "((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)))" ( (binary_expression "(iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar7 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar7 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar7 + 0xc) - 3U" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar7 = DAT_00093c1c;" (assignment_expression "iVar7 = DAT_00093c1c" identifier = identifier) ;) (if_statement "if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }" if (parenthesized_expression "(((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3))" ( (binary_expression "((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)" (parenthesized_expression "((DAT_00093c80 & 0x43) != 2)" ( (binary_expression "(DAT_00093c80 & 0x43) != 2" (parenthesized_expression "(DAT_00093c80 & 0x43)" ( (binary_expression "DAT_00093c80 & 0x43" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00093c80 & 3) != 3)" ( (binary_expression "(DAT_00093c80 & 3) != 3" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar7 = 1;\n  }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) })) (if_statement "if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" if (parenthesized_expression "(((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0))" ( (binary_expression "((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)" (parenthesized_expression "((DAT_00093c80 & 0x43) == 0x42)" ( (binary_expression "(DAT_00093c80 & 0x43) == 0x42" (parenthesized_expression "(DAT_00093c80 & 0x43)" ( (binary_expression "DAT_00093c80 & 0x43" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_00093c1c == 0 && DAT_00093c18 == 0)" ( (binary_expression "DAT_00093c1c == 0 && DAT_00093c18 == 0" (binary_expression "DAT_00093c1c == 0" identifier == number_literal) && (binary_expression "DAT_00093c18 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" if (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" ( (binary_expression "DAT_000937f8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" { (expression_statement "DAT_000937f8 = PTR_s_start_00093340;" (assignment_expression "DAT_000937f8 = PTR_s_start_00093340" identifier = identifier) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);" (assignment_expression "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" identifier (argument_list "(DAT_00093ca0,DAT_000937f8,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" if (parenthesized_expression "((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar11 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar11 + 0xc) - 3U" (pointer_expression "*(char *)(iVar11 + 0xc)" * (cast_expression "(char *)(iVar11 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" { (expression_statement "iVar10 = *(int *)(iVar11 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar11 + 0x14)" identifier = (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar10 + 0x54);" (assignment_expression "iVar25 = *(int *)(iVar10 + 0x54)" identifier = (pointer_expression "*(int *)(iVar10 + 0x54)" * (cast_expression "(int *)(iVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x54)" ( (binary_expression "iVar10 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" { (expression_statement "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" identifier = (binary_expression "*(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));" (assignment_expression "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" identifier (argument_list "(DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" ( identifier , (binary_expression "uVar29 + *(uint *)(iVar25 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar25 + 0x1c)" * (cast_expression "(uint *)(iVar25 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x1c)" ( (binary_expression "iVar25 + 0x1c" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20)" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c)" (pointer_expression "*(int *)(iVar10 + 0x50)" * (cast_expression "(int *)(iVar10 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x50)" ( (binary_expression "iVar10 + 0x50" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar11 + 0x1c)" * (cast_expression "(int *)(iVar11 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" identifier (argument_list "(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" ( (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" identifier (argument_list "(uVar29,*(uint *)(iVar25 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar25 + 0x1c)" * (cast_expression "(uint *)(iVar25 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x1c)" ( (binary_expression "iVar25 + 0x1c" identifier + number_literal) )))) ))))) )))) ;) (if_statement "if (iVar7 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar12 = "%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_00029b59;" goto statement_identifier ;) })) })) (expression_statement "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);" (assignment_expression "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0)" identifier = (call_expression "bfd_scan_vma(DAT_000937f8,local_20,0)" identifier (argument_list "(DAT_000937f8,local_20,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 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    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }" { (expression_statement "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);" (assignment_expression "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" identifier = (call_expression "bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" identifier (argument_list "(DAT_00093cb4,PTR_s__text_00093334)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" { (if_statement "if (iVar7 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar12 = "%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_00029b59:\n      puVar17 = DAT_000937f8;" statement_identifier : (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" identifier = identifier) ;)) (expression_statement "uVar8 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar8 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00032ba0(uVar8,puVar17);" (call_expression "FUN_00032ba0(uVar8,puVar17)" identifier (argument_list "(uVar8,puVar17)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar8 = *(undefined4 *)(iVar11 + 0x1c);" (assignment_expression "uVar8 = *(undefined4 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar11 + 0x20);" (assignment_expression "uVar14 = *(undefined4 *)(iVar11 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" * (cast_expression "(undefined4 *)(iVar11 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" * (cast_expression "(undefined8 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" { (expression_statement "uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,puVar17,uVar8,uVar14);" (call_expression "FUN_00032ba0(uVar20,puVar17,uVar8,uVar14)" identifier (argument_list "(uVar20,puVar17,uVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" * (cast_expression "(undefined8 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);" (assignment_expression "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40)" identifier = (call_expression "bfd_set_start_address(DAT_00093cb4,uVar40)" identifier (argument_list "(DAT_00093cb4,uVar40)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_00028dd0:\n  uVar8 = *puVar15;" statement_identifier : (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;)) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" identifier = (cast_expression "(undefined4 *)puVar15[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028c51;" goto statement_identifier ;) (labeled_statement "code_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" statement_identifier : (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80)" (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 "(puVar15,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;)) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x000290b4;" goto statement_identifier ;) (labeled_statement "code_r0x00029557:\n  iVar7 = piVar24[6];" statement_identifier : (expression_statement "iVar7 = piVar24[6];" (assignment_expression "iVar7 = piVar24[6]" identifier = (subscript_expression "piVar24[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8,iVar7,pbVar3);" (call_expression "FUN_00032ba0(uVar8,iVar7,pbVar3)" identifier (argument_list "(uVar8,iVar7,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_r0x0002951b;" 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  bfd *pbVar1;\n  char cVar2;\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_link_hash_entry *pbVar10;\n  bfd *pbVar11;\n  bfd *pbVar12;\n  lang_output_section_statement_struct *plVar13;\n  int iVar14;\n  lang_statement_union **pplVar15;\n  lang_statement_union **pplVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  require_defined_symbol *prVar19;\n  undefined *puVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  char *pcVar26;\n  size_t sVar27;\n  bfd_boolean bVar28;\n  int iVar29;\n  char *pcVar30;\n  bfd_elf_version_expr *pbVar31;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar32;\n  undefined4 uVar33;\n  lang_statement_union *plVar34;\n  lang_output_section_statement_struct *plVar35;\n  lang_statement_union_type **pplVar36;\n  bfd_section *pbVar37;\n  lang_output_section_statement_type *plVar38;\n  int iVar39;\n  uint uVar40;\n  uint uVar41;\n  int *__ptr;\n  byte *pbVar42;\n  etree_type *peVar43;\n  byte bVar44;\n  bfd_target *pbVar45;\n  lang_statement_union **extraout_ECX;\n  lang_statement_union **pplVar46;\n  lang_statement_union **extraout_ECX_00;\n  asection *paVar47;\n  lang_statement_list_type *plVar48;\n  lang_statement_union *plVar49;\n  bfd_link_hash_entry **ppbVar50;\n  lang_output_section_statement_struct *plVar51;\n  asection *paVar52;\n  lang_statement_union *plVar53;\n  bfd_section *pbVar54;\n  lang_output_section_phdr_list *plVar55;\n  asection *paVar56;\n  memory_region_struct *pmVar57;\n  lang_statement_union *plVar58;\n  lang_output_section_phdr_list *plVar59;\n  lang_statement_union *plVar60;\n  uint uVar61;\n  bfd_link_hash_entry **ppbVar62;\n  uint uVar63;\n  uint uVar64;\n  int *piVar65;\n  undefined4 uVar66;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar67;\n  byte *pbVar68;\n  char *pcVar69;\n  uint uVar70;\n  uint uVar71;\n  undefined4 *puVar72;\n  bool bVar73;\n  bool bVar74;\n  byte bVar75;\n  bfd_vma bVar76;\n  undefined8 uVar77;\n  lang_statement_union *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  bfd *local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  uint power;\n  undefined4 uStack_14;\n  \n  bVar75 = 0;\n  uStack_14 = 0x28819;\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  iVar25 = bfd_section_already_linked_table_init();\n  if (iVar25 == 0) {\n    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar26);\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  pplVar21 = input_file_chain.tail;\n  plVar58 = input_file_chain.head;\n  pplVar46 = file_chain.tail;\n  plVar49 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar53 = stat_ptr->head;\n    pplVar15 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);\n    plVar48 = stat_ptr;\n    if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar16 = plVar48->tail;\n    plVar53 = *pplVar15;\n    plVar48->tail = pplVar15;\n    *pplVar15 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar15 = file_chain.tail;\n    plVar49 = *pplVar46;\n    file_chain.tail = pplVar46;\n    *pplVar46 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar46 = input_file_chain.tail;\n    plVar58 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar60 = file_chain.head;\n    plVar67 = input_file_chain.head;\n    if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -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    pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar26);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\nLAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }\n    pbVar6 = (plVar49->input_statement).the_bfd;\n    iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n    pbVar1 = link_info.output_bfd;\n    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n      if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }\n    if (iVar25 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;\n    uVar66 = bfd_printable_name(link_info.output_bfd);\n    uVar33 = bfd_printable_name(pbVar6);\n    pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);\n    einfo(pcVar26,uVar33,pbVar6,uVar66);\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    plVar49 = file_chain.head;\n    while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    pbVar31 = 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 = pbVar31;\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  puVar20 = PTR__sch_istable_00092f98;\n  if (config.build_constructors != 0) {\n    local_54 = link_info.input_bfds;\n    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar57 = lang_memory_region_list;\njoined_r0x00028c51:\n  if (pmVar57 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (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  uVar23 = link_info._0_1_;\n  plVar49 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar23 & 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar58 = (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  plVar53 = (lang_statement_union *)0x0;\n  plVar49 = ((lang_output_section_statement.head)->header).next;\n  if (plVar49 == (lang_statement_union *)0x0) {\nLAB_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }\n  pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180);\n  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\n    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;\njoined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar44 = link_info._0_1_ & 3;\n  ppbVar62 = start_stop_syms;\n  plVar49 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar44 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar62, link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    plVar35 = (plVar49->output_section_statement).prev;\n    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }\n    ppbVar62 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar50 = ppbVar62 + start_stop_count;\n    do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_00029327:\n  if (bVar44 != 2) {\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }\n  ldemul_before_allocation();\n  plVar55 = (lang_output_section_phdr_list *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_6c = (lang_statement_union *)0x0;\n    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }\n    uVar66 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }\n    peVar43 = plVar8->at;\n    bVar76 = 0;\n    if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);\n    if (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }\n  }\n  free(local_64);\n  pplVar46 = extraout_ECX;\n  for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (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,(bfd_boolean *)pplVar46);\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  uVar61 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar62 = start_stop_syms + start_stop_count;\n    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);\n    ppbVar50 = start_stop_syms;\n    do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_000296b8:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar19 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);\n    uVar70 = iVar25 - 1U >> 5 & 1;\n    bVar75 = (byte)(iVar25 - 1U);\n    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);\n    iVar25 = uVar61 * 2;\n    uVar63 = iVar25 - 1;\n    pbVar37 = (link_info.output_bfd)->sections;\n    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);\n    if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }\n    prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = require_defined_symbol_list;\n    }\n  }\njoined_r0x000296eb:\n  for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }\n  iVar25 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar25 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar26);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  iVar39 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)) {\n    iVar29 = *(int *)(iVar39 + 0x14);\n    iVar14 = *(int *)(iVar29 + 0x54);\n    if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar77 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar26 = entry_symbol.name;\n    if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }\n    uVar66 = *(undefined4 *)(iVar39 + 0x1c);\n    uVar33 = *(undefined4 *)(iVar39 + 0x20);\n    uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }\n  }\n  iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77);\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar26 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar26);\n  return;\nLAB_00028dd0:\n  pcVar26 = (pmVar57->name_list).name;\n  pcVar30 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar30,pcVar26);\n  pmVar57 = pmVar57->next;\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);\n  pbVar54 = pbVar54->next;\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  plVar58 = (plVar49->wild_statement).children.head;\n  pcVar26 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar26,plVar58,pbVar9);\n  paVar47 = (asection *)paVar47->name;\n  pplVar46 = extraout_ECX_00;\n  goto joined_r0x0002951b;\n}\n\n" comment comment comment (function_definition "void lang_process(void)\n\n{\n  bfd *pbVar1;\n  char cVar2;\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_link_hash_entry *pbVar10;\n  bfd *pbVar11;\n  bfd *pbVar12;\n  lang_output_section_statement_struct *plVar13;\n  int iVar14;\n  lang_statement_union **pplVar15;\n  lang_statement_union **pplVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  require_defined_symbol *prVar19;\n  undefined *puVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  char *pcVar26;\n  size_t sVar27;\n  bfd_boolean bVar28;\n  int iVar29;\n  char *pcVar30;\n  bfd_elf_version_expr *pbVar31;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar32;\n  undefined4 uVar33;\n  lang_statement_union *plVar34;\n  lang_output_section_statement_struct *plVar35;\n  lang_statement_union_type **pplVar36;\n  bfd_section *pbVar37;\n  lang_output_section_statement_type *plVar38;\n  int iVar39;\n  uint uVar40;\n  uint uVar41;\n  int *__ptr;\n  byte *pbVar42;\n  etree_type *peVar43;\n  byte bVar44;\n  bfd_target *pbVar45;\n  lang_statement_union **extraout_ECX;\n  lang_statement_union **pplVar46;\n  lang_statement_union **extraout_ECX_00;\n  asection *paVar47;\n  lang_statement_list_type *plVar48;\n  lang_statement_union *plVar49;\n  bfd_link_hash_entry **ppbVar50;\n  lang_output_section_statement_struct *plVar51;\n  asection *paVar52;\n  lang_statement_union *plVar53;\n  bfd_section *pbVar54;\n  lang_output_section_phdr_list *plVar55;\n  asection *paVar56;\n  memory_region_struct *pmVar57;\n  lang_statement_union *plVar58;\n  lang_output_section_phdr_list *plVar59;\n  lang_statement_union *plVar60;\n  uint uVar61;\n  bfd_link_hash_entry **ppbVar62;\n  uint uVar63;\n  uint uVar64;\n  int *piVar65;\n  undefined4 uVar66;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar67;\n  byte *pbVar68;\n  char *pcVar69;\n  uint uVar70;\n  uint uVar71;\n  undefined4 *puVar72;\n  bool bVar73;\n  bool bVar74;\n  byte bVar75;\n  bfd_vma bVar76;\n  undefined8 uVar77;\n  lang_statement_union *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  bfd *local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  uint power;\n  undefined4 uStack_14;\n  \n  bVar75 = 0;\n  uStack_14 = 0x28819;\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  iVar25 = bfd_section_already_linked_table_init();\n  if (iVar25 == 0) {\n    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar26);\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  pplVar21 = input_file_chain.tail;\n  plVar58 = input_file_chain.head;\n  pplVar46 = file_chain.tail;\n  plVar49 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar53 = stat_ptr->head;\n    pplVar15 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);\n    plVar48 = stat_ptr;\n    if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar16 = plVar48->tail;\n    plVar53 = *pplVar15;\n    plVar48->tail = pplVar15;\n    *pplVar15 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar15 = file_chain.tail;\n    plVar49 = *pplVar46;\n    file_chain.tail = pplVar46;\n    *pplVar46 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar46 = input_file_chain.tail;\n    plVar58 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar60 = file_chain.head;\n    plVar67 = input_file_chain.head;\n    if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -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    pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar26);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\nLAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }\n    pbVar6 = (plVar49->input_statement).the_bfd;\n    iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n    pbVar1 = link_info.output_bfd;\n    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n      if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }\n    if (iVar25 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;\n    uVar66 = bfd_printable_name(link_info.output_bfd);\n    uVar33 = bfd_printable_name(pbVar6);\n    pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);\n    einfo(pcVar26,uVar33,pbVar6,uVar66);\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    plVar49 = file_chain.head;\n    while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    pbVar31 = 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 = pbVar31;\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  puVar20 = PTR__sch_istable_00092f98;\n  if (config.build_constructors != 0) {\n    local_54 = link_info.input_bfds;\n    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar57 = lang_memory_region_list;\njoined_r0x00028c51:\n  if (pmVar57 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (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  uVar23 = link_info._0_1_;\n  plVar49 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar23 & 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar58 = (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  plVar53 = (lang_statement_union *)0x0;\n  plVar49 = ((lang_output_section_statement.head)->header).next;\n  if (plVar49 == (lang_statement_union *)0x0) {\nLAB_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }\n  pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180);\n  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\n    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;\njoined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar44 = link_info._0_1_ & 3;\n  ppbVar62 = start_stop_syms;\n  plVar49 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar44 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar62, link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    plVar35 = (plVar49->output_section_statement).prev;\n    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }\n    ppbVar62 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar50 = ppbVar62 + start_stop_count;\n    do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_00029327:\n  if (bVar44 != 2) {\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }\n  ldemul_before_allocation();\n  plVar55 = (lang_output_section_phdr_list *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_6c = (lang_statement_union *)0x0;\n    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }\n    uVar66 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }\n    peVar43 = plVar8->at;\n    bVar76 = 0;\n    if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);\n    if (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }\n  }\n  free(local_64);\n  pplVar46 = extraout_ECX;\n  for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (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,(bfd_boolean *)pplVar46);\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  uVar61 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar62 = start_stop_syms + start_stop_count;\n    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);\n    ppbVar50 = start_stop_syms;\n    do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_000296b8:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar19 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);\n    uVar70 = iVar25 - 1U >> 5 & 1;\n    bVar75 = (byte)(iVar25 - 1U);\n    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);\n    iVar25 = uVar61 * 2;\n    uVar63 = iVar25 - 1;\n    pbVar37 = (link_info.output_bfd)->sections;\n    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);\n    if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }\n    prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = require_defined_symbol_list;\n    }\n  }\njoined_r0x000296eb:\n  for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }\n  iVar25 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar25 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar26);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  iVar39 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)) {\n    iVar29 = *(int *)(iVar39 + 0x14);\n    iVar14 = *(int *)(iVar29 + 0x54);\n    if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar77 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar26 = entry_symbol.name;\n    if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }\n    uVar66 = *(undefined4 *)(iVar39 + 0x1c);\n    uVar33 = *(undefined4 *)(iVar39 + 0x20);\n    uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }\n  }\n  iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77);\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar26 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar26);\n  return;\nLAB_00028dd0:\n  pcVar26 = (pmVar57->name_list).name;\n  pcVar30 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar30,pcVar26);\n  pmVar57 = pmVar57->next;\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);\n  pbVar54 = pbVar54->next;\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  plVar58 = (plVar49->wild_statement).children.head;\n  pcVar26 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar26,plVar58,pbVar9);\n  paVar47 = (asection *)paVar47->name;\n  pplVar46 = extraout_ECX_00;\n  goto joined_r0x0002951b;\n}" primitive_type (function_declarator "lang_process(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  bfd *pbVar1;\n  char cVar2;\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_link_hash_entry *pbVar10;\n  bfd *pbVar11;\n  bfd *pbVar12;\n  lang_output_section_statement_struct *plVar13;\n  int iVar14;\n  lang_statement_union **pplVar15;\n  lang_statement_union **pplVar16;\n  undefined4 *puVar17;\n  undefined4 *puVar18;\n  require_defined_symbol *prVar19;\n  undefined *puVar20;\n  lang_statement_union **pplVar21;\n  lang_input_statement_type *plVar22;\n  undefined1 uVar23;\n  undefined4 *puVar24;\n  int iVar25;\n  char *pcVar26;\n  size_t sVar27;\n  bfd_boolean bVar28;\n  int iVar29;\n  char *pcVar30;\n  bfd_elf_version_expr *pbVar31;\n  bfd_elf_version_tree *version;\n  bfd_target *pbVar32;\n  undefined4 uVar33;\n  lang_statement_union *plVar34;\n  lang_output_section_statement_struct *plVar35;\n  lang_statement_union_type **pplVar36;\n  bfd_section *pbVar37;\n  lang_output_section_statement_type *plVar38;\n  int iVar39;\n  uint uVar40;\n  uint uVar41;\n  int *__ptr;\n  byte *pbVar42;\n  etree_type *peVar43;\n  byte bVar44;\n  bfd_target *pbVar45;\n  lang_statement_union **extraout_ECX;\n  lang_statement_union **pplVar46;\n  lang_statement_union **extraout_ECX_00;\n  asection *paVar47;\n  lang_statement_list_type *plVar48;\n  lang_statement_union *plVar49;\n  bfd_link_hash_entry **ppbVar50;\n  lang_output_section_statement_struct *plVar51;\n  asection *paVar52;\n  lang_statement_union *plVar53;\n  bfd_section *pbVar54;\n  lang_output_section_phdr_list *plVar55;\n  asection *paVar56;\n  memory_region_struct *pmVar57;\n  lang_statement_union *plVar58;\n  lang_output_section_phdr_list *plVar59;\n  lang_statement_union *plVar60;\n  uint uVar61;\n  bfd_link_hash_entry **ppbVar62;\n  uint uVar63;\n  uint uVar64;\n  int *piVar65;\n  undefined4 uVar66;\n  bfd_elf_version_expr *orig;\n  lang_statement_union *plVar67;\n  byte *pbVar68;\n  char *pcVar69;\n  uint uVar70;\n  uint uVar71;\n  undefined4 *puVar72;\n  bool bVar73;\n  bool bVar74;\n  byte bVar75;\n  bfd_vma bVar76;\n  undefined8 uVar77;\n  lang_statement_union *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  bfd *local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  uint power;\n  undefined4 uStack_14;\n  \n  bVar75 = 0;\n  uStack_14 = 0x28819;\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  iVar25 = bfd_section_already_linked_table_init();\n  if (iVar25 == 0) {\n    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar26);\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  pplVar21 = input_file_chain.tail;\n  plVar58 = input_file_chain.head;\n  pplVar46 = file_chain.tail;\n  plVar49 = file_chain.head;\n  if ((link_info._1_1_ & 2) != 0) {\n    plVar53 = stat_ptr->head;\n    pplVar15 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);\n    plVar48 = stat_ptr;\n    if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar16 = plVar48->tail;\n    plVar53 = *pplVar15;\n    plVar48->tail = pplVar15;\n    *pplVar15 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar15 = file_chain.tail;\n    plVar49 = *pplVar46;\n    file_chain.tail = pplVar46;\n    *pplVar46 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar46 = input_file_chain.tail;\n    plVar58 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar60 = file_chain.head;\n    plVar67 = input_file_chain.head;\n    if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -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    pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar26);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\nLAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }\n    pbVar6 = (plVar49->input_statement).the_bfd;\n    iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n    pbVar1 = link_info.output_bfd;\n    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n      if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }\n    if (iVar25 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;\n    uVar66 = bfd_printable_name(link_info.output_bfd);\n    uVar33 = bfd_printable_name(pbVar6);\n    pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);\n    einfo(pcVar26,uVar33,pbVar6,uVar66);\n  }\n  if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    plVar49 = file_chain.head;\n    while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    pbVar31 = 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 = pbVar31;\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  puVar20 = PTR__sch_istable_00092f98;\n  if (config.build_constructors != 0) {\n    local_54 = link_info.input_bfds;\n    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);\n    }\n  }\n  lang_do_assignments(lang_mark_phase_enum);\n  pmVar57 = lang_memory_region_list;\njoined_r0x00028c51:\n  if (pmVar57 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (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  uVar23 = link_info._0_1_;\n  plVar49 = file_chain.head;\n  if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((uVar23 & 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }\n  ldemul_after_check_relocs();\n  plVar58 = (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  plVar53 = (lang_statement_union *)0x0;\n  plVar49 = ((lang_output_section_statement.head)->header).next;\n  if (plVar49 == (lang_statement_union *)0x0) {\nLAB_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }\n  pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180);\n  for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\n    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;\njoined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar44 = link_info._0_1_ & 3;\n  ppbVar62 = start_stop_syms;\n  plVar49 = lang_output_section_statement.head;\n  pbVar6 = link_info.output_bfd;\n  if (bVar44 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }\n  for (; start_stop_syms = ppbVar62, link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    plVar35 = (plVar49->output_section_statement).prev;\n    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }\n    ppbVar62 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }\n  if ((config.build_constructors != 0) && (start_stop_count != 0)) {\n    ppbVar50 = ppbVar62 + start_stop_count;\n    do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_00029327:\n  if (bVar44 != 2) {\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }\n  ldemul_before_allocation();\n  plVar55 = (lang_output_section_phdr_list *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (plVar8 = lang_phdr_list; plVar8 != (lang_phdr *)0x0; plVar8 = plVar8->next) {\n    local_6c = (lang_statement_union *)0x0;\n    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }\n    uVar66 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }\n    peVar43 = plVar8->at;\n    bVar76 = 0;\n    if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);\n    if (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }\n  }\n  free(local_64);\n  pplVar46 = extraout_ECX;\n  for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (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,(bfd_boolean *)pplVar46);\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  uVar61 = opb_shift;\n  if (start_stop_count != 0) {\n    ppbVar62 = start_stop_syms + start_stop_count;\n    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);\n    ppbVar50 = start_stop_syms;\n    do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }\nLAB_000296b8:\n  lang_do_assignments(lang_final_phase_enum);\n  ldemul_finish();\n  ldexp_finalize_syms();\n  prVar19 = require_defined_symbol_list;\n  if (command_line.check_section_addresses != '\0') {\n    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);\n    uVar70 = iVar25 - 1U >> 5 & 1;\n    bVar75 = (byte)(iVar25 - 1U);\n    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);\n    iVar25 = uVar61 * 2;\n    uVar63 = iVar25 - 1;\n    pbVar37 = (link_info.output_bfd)->sections;\n    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);\n    if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }\n    prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = require_defined_symbol_list;\n    }\n  }\njoined_r0x000296eb:\n  for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }\n  iVar25 = entry_from_cmdline;\n  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar25 = 1;\n  }\n  if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar26);\n  }\n  if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 0;\n  }\n  iVar39 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);\n  if ((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)) {\n    iVar29 = *(int *)(iVar39 + 0x14);\n    iVar14 = *(int *)(iVar29 + 0x54);\n    if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar77 = bfd_scan_vma(entry_symbol.name,&power,0);\n  if (*(char *)power != '\0') {\n    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar26 = entry_symbol.name;\n    if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }\n    uVar66 = *(undefined4 *)(iVar39 + 0x1c);\n    uVar33 = *(undefined4 *)(iVar39 + 0x20);\n    uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }\n  }\n  iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77);\n  if (iVar25 != 0) {\n    return;\n  }\n  pcVar26 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);\n  einfo(pcVar26);\n  return;\nLAB_00028dd0:\n  pcVar26 = (pmVar57->name_list).name;\n  pcVar30 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  einfo(pcVar30,pcVar26);\n  pmVar57 = pmVar57->next;\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);\n  pbVar54 = pbVar54->next;\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  plVar58 = (plVar49->wild_statement).children.head;\n  pcVar26 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  einfo(pcVar26,plVar58,pbVar9);\n  paVar47 = (asection *)paVar47->name;\n  pplVar46 = extraout_ECX_00;\n  goto joined_r0x0002951b;\n}" { (declaration "bfd *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "char cVar2;" primitive_type 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_link_hash_entry *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "bfd *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "bfd *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar13;" type_identifier (pointer_declarator "*plVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "lang_statement_union **pplVar15;" type_identifier (pointer_declarator "**pplVar15" * (pointer_declarator "*pplVar15" * identifier)) ;) (declaration "lang_statement_union **pplVar16;" type_identifier (pointer_declarator "**pplVar16" * (pointer_declarator "*pplVar16" * identifier)) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "require_defined_symbol *prVar19;" type_identifier (pointer_declarator "*prVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "lang_statement_union **pplVar21;" type_identifier (pointer_declarator "**pplVar21" * (pointer_declarator "*pplVar21" * identifier)) ;) (declaration "lang_input_statement_type *plVar22;" type_identifier (pointer_declarator "*plVar22" * identifier) ;) (declaration "undefined1 uVar23;" type_identifier identifier ;) (declaration "undefined4 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "char *pcVar26;" primitive_type (pointer_declarator "*pcVar26" * identifier) ;) (declaration "size_t sVar27;" primitive_type identifier ;) (declaration "bfd_boolean bVar28;" type_identifier identifier ;) (declaration "int iVar29;" primitive_type identifier ;) (declaration "char *pcVar30;" primitive_type (pointer_declarator "*pcVar30" * identifier) ;) (declaration "bfd_elf_version_expr *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "bfd_elf_version_tree *version;" type_identifier (pointer_declarator "*version" * identifier) ;) (declaration "bfd_target *pbVar32;" type_identifier (pointer_declarator "*pbVar32" * identifier) ;) (declaration "undefined4 uVar33;" type_identifier identifier ;) (declaration "lang_statement_union *plVar34;" type_identifier (pointer_declarator "*plVar34" * identifier) ;) (declaration "lang_output_section_statement_struct *plVar35;" type_identifier (pointer_declarator "*plVar35" * identifier) ;) (declaration "lang_statement_union_type **pplVar36;" type_identifier (pointer_declarator "**pplVar36" * (pointer_declarator "*pplVar36" * identifier)) ;) (declaration "bfd_section *pbVar37;" type_identifier (pointer_declarator "*pbVar37" * identifier) ;) (declaration "lang_output_section_statement_type *plVar38;" type_identifier (pointer_declarator "*plVar38" * identifier) ;) (declaration "int iVar39;" primitive_type identifier ;) (declaration "uint uVar40;" type_identifier identifier ;) (declaration "uint uVar41;" type_identifier identifier ;) (declaration "int *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "byte *pbVar42;" type_identifier (pointer_declarator "*pbVar42" * identifier) ;) (declaration "etree_type *peVar43;" type_identifier (pointer_declarator "*peVar43" * identifier) ;) (declaration "byte bVar44;" type_identifier identifier ;) (declaration "bfd_target *pbVar45;" type_identifier (pointer_declarator "*pbVar45" * identifier) ;) (declaration "lang_statement_union **extraout_ECX;" type_identifier (pointer_declarator "**extraout_ECX" * (pointer_declarator "*extraout_ECX" * identifier)) ;) (declaration "lang_statement_union **pplVar46;" type_identifier (pointer_declarator "**pplVar46" * (pointer_declarator "*pplVar46" * identifier)) ;) (declaration "lang_statement_union **extraout_ECX_00;" type_identifier (pointer_declarator "**extraout_ECX_00" * (pointer_declarator "*extraout_ECX_00" * identifier)) ;) (declaration "asection *paVar47;" type_identifier (pointer_declarator "*paVar47" * identifier) ;) (declaration "lang_statement_list_type *plVar48;" type_identifier (pointer_declarator "*plVar48" * identifier) ;) (declaration "lang_statement_union *plVar49;" type_identifier (pointer_declarator "*plVar49" * identifier) ;) (declaration "bfd_link_hash_entry **ppbVar50;" type_identifier (pointer_declarator "**ppbVar50" * (pointer_declarator "*ppbVar50" * identifier)) ;) (declaration "lang_output_section_statement_struct *plVar51;" type_identifier (pointer_declarator "*plVar51" * identifier) ;) (declaration "asection *paVar52;" type_identifier (pointer_declarator "*paVar52" * identifier) ;) (declaration "lang_statement_union *plVar53;" type_identifier (pointer_declarator "*plVar53" * identifier) ;) (declaration "bfd_section *pbVar54;" type_identifier (pointer_declarator "*pbVar54" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar55;" type_identifier (pointer_declarator "*plVar55" * identifier) ;) (declaration "asection *paVar56;" type_identifier (pointer_declarator "*paVar56" * identifier) ;) (declaration "memory_region_struct *pmVar57;" type_identifier (pointer_declarator "*pmVar57" * identifier) ;) (declaration "lang_statement_union *plVar58;" type_identifier (pointer_declarator "*plVar58" * identifier) ;) (declaration "lang_output_section_phdr_list *plVar59;" type_identifier (pointer_declarator "*plVar59" * identifier) ;) (declaration "lang_statement_union *plVar60;" type_identifier (pointer_declarator "*plVar60" * identifier) ;) (declaration "uint uVar61;" type_identifier identifier ;) (declaration "bfd_link_hash_entry **ppbVar62;" type_identifier (pointer_declarator "**ppbVar62" * (pointer_declarator "*ppbVar62" * identifier)) ;) (declaration "uint uVar63;" type_identifier identifier ;) (declaration "uint uVar64;" type_identifier identifier ;) (declaration "int *piVar65;" primitive_type (pointer_declarator "*piVar65" * identifier) ;) (declaration "undefined4 uVar66;" type_identifier identifier ;) (declaration "bfd_elf_version_expr *orig;" type_identifier (pointer_declarator "*orig" * identifier) ;) (declaration "lang_statement_union *plVar67;" type_identifier (pointer_declarator "*plVar67" * identifier) ;) (declaration "byte *pbVar68;" type_identifier (pointer_declarator "*pbVar68" * identifier) ;) (declaration "char *pcVar69;" primitive_type (pointer_declarator "*pcVar69" * identifier) ;) (declaration "uint uVar70;" type_identifier identifier ;) (declaration "uint uVar71;" type_identifier identifier ;) (declaration "undefined4 *puVar72;" type_identifier (pointer_declarator "*puVar72" * identifier) ;) (declaration "bool bVar73;" primitive_type identifier ;) (declaration "bool bVar74;" primitive_type identifier ;) (declaration "byte bVar75;" type_identifier identifier ;) (declaration "bfd_vma bVar76;" type_identifier identifier ;) (declaration "undefined8 uVar77;" type_identifier identifier ;) (declaration "lang_statement_union *local_6c;" type_identifier (pointer_declarator "*local_6c" * identifier) ;) (declaration "void *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "bfd *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint power;" type_identifier identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar75 = 0;" (assignment_expression "bVar75 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x28819;" (assignment_expression "uStack_14 = 0x28819" 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 "iVar25 = bfd_section_already_linked_table_init();" (assignment_expression "iVar25 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar25 == 0) {\n    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar26);\n  }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    einfo(pcVar26);\n  }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "einfo(pcVar26)" identifier (argument_list "(pcVar26)" ( 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 "pplVar21 = input_file_chain.tail;" (assignment_expression "pplVar21 = input_file_chain.tail" identifier = (field_expression "input_file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar58 = input_file_chain.head;" (assignment_expression "plVar58 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (expression_statement "pplVar46 = file_chain.tail;" (assignment_expression "pplVar46 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar49 = file_chain.head;" (assignment_expression "plVar49 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._1_1_ & 2) != 0) {\n    plVar53 = stat_ptr->head;\n    pplVar15 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);\n    plVar48 = stat_ptr;\n    if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar16 = plVar48->tail;\n    plVar53 = *pplVar15;\n    plVar48->tail = pplVar15;\n    *pplVar15 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar15 = file_chain.tail;\n    plVar49 = *pplVar46;\n    file_chain.tail = pplVar46;\n    *pplVar46 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar46 = input_file_chain.tail;\n    plVar58 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar60 = file_chain.head;\n    plVar67 = input_file_chain.head;\n    if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -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    plVar53 = stat_ptr->head;\n    pplVar15 = stat_ptr->tail;\n    iVar25 = plugin_call_all_symbols_read();\n    if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n    open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);\n    plVar48 = stat_ptr;\n    if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar16 = plVar48->tail;\n    plVar53 = *pplVar15;\n    plVar48->tail = pplVar15;\n    *pplVar15 = (lang_statement_union *)0x0;\n    if (file_chain.head != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar15 = file_chain.tail;\n    plVar49 = *pplVar46;\n    file_chain.tail = pplVar46;\n    *pplVar46 = (lang_statement_union *)0x0;\n    if (input_file_chain.head != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }\n    pplVar46 = input_file_chain.tail;\n    plVar58 = *pplVar21;\n    input_file_chain.tail = pplVar21;\n    *pplVar21 = (lang_statement_union *)0x0;\n    plVar60 = file_chain.head;\n    plVar67 = input_file_chain.head;\n    if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }\n      }\n    }\n  }" { (expression_statement "plVar53 = stat_ptr->head;" (assignment_expression "plVar53 = stat_ptr->head" identifier = (field_expression "stat_ptr->head" identifier -> field_identifier)) ;) (expression_statement "pplVar15 = stat_ptr->tail;" (assignment_expression "pplVar15 = stat_ptr->tail" identifier = (field_expression "stat_ptr->tail" identifier -> field_identifier)) ;) (expression_statement "iVar25 = plugin_call_all_symbols_read();" (assignment_expression "iVar25 = plugin_call_all_symbols_read()" identifier = (call_expression "plugin_call_all_symbols_read()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar25 != 0) {\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar26 = plugin_error_plugin();\n      pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      einfo(pcVar30,pcVar26);\n    }" { (expression_statement "pcVar26 = plugin_error_plugin();" (assignment_expression "pcVar26 = plugin_error_plugin()" identifier = (call_expression "plugin_error_plugin()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar30 = (char *)dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) })) (expression_statement "open_input_bfds(*pplVar15,OPEN_BFD_NORMAL);" (call_expression "open_input_bfds(*pplVar15,OPEN_BFD_NORMAL)" identifier (argument_list "(*pplVar15,OPEN_BFD_NORMAL)" ( (pointer_expression "*pplVar15" * identifier) , identifier ))) ;) (expression_statement "plVar48 = stat_ptr;" (assignment_expression "plVar48 = stat_ptr" identifier = identifier) ;) (if_statement "if (stat_ptr->head != plVar53) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(stat_ptr->head != plVar53)" ( (binary_expression "stat_ptr->head != plVar53" (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 "pplVar16 = plVar48->tail;" (assignment_expression "pplVar16 = plVar48->tail" identifier = (field_expression "plVar48->tail" identifier -> field_identifier)) ;) (expression_statement "plVar53 = *pplVar15;" (assignment_expression "plVar53 = *pplVar15" identifier = (pointer_expression "*pplVar15" * identifier)) ;) (expression_statement "plVar48->tail = pplVar15;" (assignment_expression "plVar48->tail = pplVar15" (field_expression "plVar48->tail" identifier -> field_identifier) = identifier) ;) (expression_statement "*pplVar15 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar15 = (lang_statement_union *)0x0" (pointer_expression "*pplVar15" * 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 != plVar49) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(file_chain.head != plVar49)" ( (binary_expression "file_chain.head != plVar49" (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 "pplVar15 = file_chain.tail;" (assignment_expression "pplVar15 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar49 = *pplVar46;" (assignment_expression "plVar49 = *pplVar46" identifier = (pointer_expression "*pplVar46" * identifier)) ;) (expression_statement "file_chain.tail = pplVar46;" (assignment_expression "file_chain.tail = pplVar46" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar46 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar46 = (lang_statement_union *)0x0" (pointer_expression "*pplVar46" * 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 != plVar58) {\n      info_assert("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(input_file_chain.head != plVar58)" ( (binary_expression "input_file_chain.head != plVar58" (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 "pplVar46 = input_file_chain.tail;" (assignment_expression "pplVar46 = input_file_chain.tail" identifier = (field_expression "input_file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar58 = *pplVar21;" (assignment_expression "plVar58 = *pplVar21" identifier = (pointer_expression "*pplVar21" * identifier)) ;) (expression_statement "input_file_chain.tail = pplVar21;" (assignment_expression "input_file_chain.tail = pplVar21" (field_expression "input_file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar21 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar21 = (lang_statement_union *)0x0" (pointer_expression "*pplVar21" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar60 = file_chain.head;" (assignment_expression "plVar60 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "plVar67 = input_file_chain.head;" (assignment_expression "plVar67 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (if_statement "if (plVar53 != (lang_statement_union *)0x0) {\n      for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(plVar53 != (lang_statement_union *)0x0)" ( (binary_expression "plVar53 != (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 *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }\n      plVar60 = (lang_statement_union *)plugin_insert;\n      if ((lang_statement_union *)plugin_insert == (lang_statement_union *)0x0) {\n        info_assert("../../ld/ldlang.c",0x1c32);\n        plVar60 = (lang_statement_union *)plugin_insert;\n      }\nLAB_00029ef1:\n      plugin_insert = &plVar60->input_statement;\n      plVar22 = plugin_insert;\n      plVar48 = stat_ptr;\n      *pplVar16 = (plugin_insert->header).next;\n      (plVar22->header).next = plVar53;\n      if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }\n      *pplVar46 = plVar22->next_real_file;\n      plVar22->next_real_file = plVar58;\n      pplVar21 = file_chain.tail;\n      if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }\n      if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      file_chain.tail = pplVar15;\n      pplVar46 = file_chain.tail;\n      plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }\n      plVar49 = *pplVar46;\n      file_chain.tail = pplVar46;\n      *pplVar46 = (lang_statement_union *)0x0;\n      while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }\n      }\n    }" { (for_statement "for (; plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0; plVar60 = (plVar60->wild_statement).children.head)\n      {\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }" for ( ; (comma_expression "plugin_insert = (lang_input_statement_type *)plVar67,\n          plVar60 != (lang_statement_union *)0x0" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar67" identifier = (cast_expression "(lang_input_statement_type *)plVar67" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "plVar60 != (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 "plVar60 = (plVar60->wild_statement).children.head" identifier = (field_expression "(plVar60->wild_statement).children.head" (field_expression "(plVar60->wild_statement).children" (parenthesized_expression "(plVar60->wild_statement)" ( (field_expression "plVar60->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n        if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }\n        if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }\n        plVar67 = (lang_statement_union *)plugin_insert;\n      }" { (if_statement "if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }" if (parenthesized_expression "(((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0)" ( (binary_expression "((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000) != 0" (parenthesized_expression "((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar60->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar60->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar60->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar60->wild_statement)" ( (field_expression "plVar60->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;\n          break;\n        }" { (if_statement "if (((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)\n          goto LAB_00029ef1;" if (parenthesized_expression "(((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0)" ( (binary_expression "((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000) == 0" (parenthesized_expression "((uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000)" ( (binary_expression "(uint)(plVar60->wild_statement).walk_wild_section_handler & 0x4000" (field_expression "(uint)(plVar60->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar60->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar60->wild_statement)" ( (field_expression "plVar60->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00029ef1;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if (((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)) {\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }" if (parenthesized_expression "(((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0))" ( (binary_expression "((plVar60->reloc_statement).section != (asection *)0x0) &&\n           (((plVar60->reloc_statement).section)->lineno_count == 0)" (parenthesized_expression "((plVar60->reloc_statement).section != (asection *)0x0)" ( (binary_expression "(plVar60->reloc_statement).section != (asection *)0x0" (field_expression "(plVar60->reloc_statement).section" (parenthesized_expression "(plVar60->reloc_statement)" ( (field_expression "plVar60->reloc_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(((plVar60->reloc_statement).section)->lineno_count == 0)" ( (binary_expression "((plVar60->reloc_statement).section)->lineno_count == 0" (field_expression "((plVar60->reloc_statement).section)->lineno_count" (parenthesized_expression "((plVar60->reloc_statement).section)" ( (field_expression "(plVar60->reloc_statement).section" (parenthesized_expression "(plVar60->reloc_statement)" ( (field_expression "plVar60->reloc_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) == number_literal) ))) )) (compound_statement "{\n          plugin_insert = (lang_input_statement_type *)plVar60;\n        }" { (expression_statement "plugin_insert = (lang_input_statement_type *)plVar60;" (assignment_expression "plugin_insert = (lang_input_statement_type *)plVar60" identifier = (cast_expression "(lang_input_statement_type *)plVar60" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "plVar67 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar67 = (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 "plVar60 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar60 = (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        plVar60 = (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        plVar60 = (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 "plVar60 = (lang_statement_union *)plugin_insert;" (assignment_expression "plVar60 = (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_00029ef1:\n      plugin_insert = &plVar60->input_statement;" statement_identifier : (expression_statement "plugin_insert = &plVar60->input_statement;" (assignment_expression "plugin_insert = &plVar60->input_statement" identifier = (pointer_expression "&plVar60->input_statement" & (field_expression "plVar60->input_statement" identifier -> field_identifier))) ;)) (expression_statement "plVar22 = plugin_insert;" (assignment_expression "plVar22 = plugin_insert" identifier = identifier) ;) (expression_statement "plVar48 = stat_ptr;" (assignment_expression "plVar48 = stat_ptr" identifier = identifier) ;) (expression_statement "*pplVar16 = (plugin_insert->header).next;" (assignment_expression "*pplVar16 = (plugin_insert->header).next" (pointer_expression "*pplVar16" * identifier) = (field_expression "(plugin_insert->header).next" (parenthesized_expression "(plugin_insert->header)" ( (field_expression "plugin_insert->header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(plVar22->header).next = plVar53;" (assignment_expression "(plVar22->header).next = plVar53" (field_expression "(plVar22->header).next" (parenthesized_expression "(plVar22->header)" ( (field_expression "plVar22->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (plVar22 == (lang_input_statement_type *)plVar48->tail) {\n        plVar48->tail = pplVar16;\n      }" if (parenthesized_expression "(plVar22 == (lang_input_statement_type *)plVar48->tail)" ( (binary_expression "plVar22 == (lang_input_statement_type *)plVar48->tail" identifier == (cast_expression "(lang_input_statement_type *)plVar48->tail" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar48->tail" identifier -> field_identifier))) )) (compound_statement "{\n        plVar48->tail = pplVar16;\n      }" { (expression_statement "plVar48->tail = pplVar16;" (assignment_expression "plVar48->tail = pplVar16" (field_expression "plVar48->tail" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*pplVar46 = plVar22->next_real_file;" (assignment_expression "*pplVar46 = plVar22->next_real_file" (pointer_expression "*pplVar46" * identifier) = (field_expression "plVar22->next_real_file" identifier -> field_identifier)) ;) (expression_statement "plVar22->next_real_file = plVar58;" (assignment_expression "plVar22->next_real_file = plVar58" (field_expression "plVar22->next_real_file" identifier -> field_identifier) = identifier) ;) (expression_statement "pplVar21 = file_chain.tail;" (assignment_expression "pplVar21 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (if_statement "if (input_file_chain.tail == &plVar22->next_real_file) {\n        input_file_chain.tail = pplVar46;\n      }" if (parenthesized_expression "(input_file_chain.tail == &plVar22->next_real_file)" ( (binary_expression "input_file_chain.tail == &plVar22->next_real_file" (field_expression "input_file_chain.tail" identifier . field_identifier) == (pointer_expression "&plVar22->next_real_file" & (field_expression "plVar22->next_real_file" identifier -> field_identifier))) )) (compound_statement "{\n        input_file_chain.tail = pplVar46;\n      }" { (expression_statement "input_file_chain.tail = pplVar46;" (assignment_expression "input_file_chain.tail = pplVar46" (field_expression "input_file_chain.tail" identifier . field_identifier) = identifier) ;) })) (if_statement "if (plVar22->filename == (char *)0x0) {\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }\n      else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }" if (parenthesized_expression "(plVar22->filename == (char *)0x0)" ( (binary_expression "plVar22->filename == (char *)0x0" (field_expression "plVar22->filename" identifier -> field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *pplVar15 = file_chain.head;\n        file_chain.head = plVar49;\n        if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar15 = file_chain.head;" (assignment_expression "*pplVar15 = file_chain.head" (pointer_expression "*pplVar15" * identifier) = (field_expression "file_chain.head" identifier . field_identifier)) ;) (expression_statement "file_chain.head = plVar49;" (assignment_expression "file_chain.head = plVar49" (field_expression "file_chain.head" identifier . field_identifier) = identifier) ;) (if_statement "if ((lang_statement_list_type *)pplVar21 != &file_chain) {\n          pplVar15 = file_chain.tail;\n        }" if (parenthesized_expression "((lang_statement_list_type *)pplVar21 != &file_chain)" ( (binary_expression "(lang_statement_list_type *)pplVar21 != &file_chain" (cast_expression "(lang_statement_list_type *)pplVar21" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&file_chain" & identifier)) )) (compound_statement "{\n          pplVar15 = file_chain.tail;\n        }" { (expression_statement "pplVar15 = file_chain.tail;" (assignment_expression "pplVar15 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }) (else_clause "else {\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }" else (compound_statement "{\n        *pplVar15 = plVar22->next;\n        plVar22->next = plVar49;\n        if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }\n      }" { (expression_statement "*pplVar15 = plVar22->next;" (assignment_expression "*pplVar15 = plVar22->next" (pointer_expression "*pplVar15" * identifier) = (field_expression "plVar22->next" identifier -> field_identifier)) ;) (expression_statement "plVar22->next = plVar49;" (assignment_expression "plVar22->next = plVar49" (field_expression "plVar22->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pplVar21 != &plVar22->next) {\n          pplVar15 = file_chain.tail;\n        }" if (parenthesized_expression "(pplVar21 != &plVar22->next)" ( (binary_expression "pplVar21 != &plVar22->next" identifier != (pointer_expression "&plVar22->next" & (field_expression "plVar22->next" identifier -> field_identifier))) )) (compound_statement "{\n          pplVar15 = file_chain.tail;\n        }" { (expression_statement "pplVar15 = file_chain.tail;" (assignment_expression "pplVar15 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) })) }))) (expression_statement "file_chain.tail = pplVar15;" (assignment_expression "file_chain.tail = pplVar15" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "pplVar46 = file_chain.tail;" (assignment_expression "pplVar46 = file_chain.tail" identifier = (field_expression "file_chain.tail" identifier . field_identifier)) ;) (expression_statement "plVar49 = file_chain.head;" (assignment_expression "plVar49 = 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 != plVar49) {\n        info_assert("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(file_chain.head != plVar49)" ( (binary_expression "file_chain.head != plVar49" (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 "plVar49 = *pplVar46;" (assignment_expression "plVar49 = *pplVar46" identifier = (pointer_expression "*pplVar46" * identifier)) ;) (expression_statement "file_chain.tail = pplVar46;" (assignment_expression "file_chain.tail = pplVar46" (field_expression "file_chain.tail" identifier . field_identifier) = identifier) ;) (expression_statement "*pplVar46 = (lang_statement_union *)0x0;" (assignment_expression "*pplVar46 = (lang_statement_union *)0x0" (pointer_expression "*pplVar46" * identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (while_statement "while (plVar49 != (lang_statement_union *)0x0) {\n        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }\n      }" while (parenthesized_expression "(plVar49 != (lang_statement_union *)0x0)" ( (binary_expression "plVar49 != (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        pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;\n        pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;\n        if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }\n        plVar58 = file_chain.head;\n        if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }\n        plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;\n        for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }\nLAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;\n        if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }\n      }" { (expression_statement "pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count;" (assignment_expression "pbVar37 = (bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count" identifier = (cast_expression "(bfd_section *)((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "((bfd_section *)(plVar49->input_statement).the_bfd)->lineno_count" (parenthesized_expression "((bfd_section *)(plVar49->input_statement).the_bfd)" ( (cast_expression "(bfd_section *)(plVar49->input_statement).the_bfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier)) )) -> field_identifier))) ;) (expression_statement "pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd;" (assignment_expression "pbVar54 = (bfd_section *)(plVar49->input_statement).the_bfd" identifier = (cast_expression "(bfd_section *)(plVar49->input_statement).the_bfd" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (pbVar37 != (bfd_section *)0x0) {\n          pbVar54 = pbVar37;\n        }" if (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar54 = pbVar37;\n        }" { (expression_statement "pbVar54 = pbVar37;" (assignment_expression "pbVar54 = pbVar37" identifier = identifier) ;) })) (expression_statement "plVar58 = file_chain.head;" (assignment_expression "plVar58 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if (input_file_chain.head != (lang_statement_union *)0x0) {\n          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\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          plVar60 = (lang_statement_union *)0x0;\n          local_6c = (lang_statement_union *)0x0;\n          plVar53 = input_file_chain.head;\n          do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);\nLAB_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }\n        }" { (expression_statement "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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_6c = (lang_statement_union *)0x0;" (assignment_expression "local_6c = (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 "plVar53 = input_file_chain.head;" (assignment_expression "plVar53 = input_file_chain.head" identifier = (field_expression "input_file_chain.head" identifier . field_identifier)) ;) (do_statement "do {\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          } while (plVar53 != (lang_statement_union *)0x0);" do (compound_statement "{\n            while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }\n            if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }\n            plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n          }" { (while_statement "while ((bfd_section *)(plVar53->wild_statement).section_list == pbVar54) {\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }" while (parenthesized_expression "((bfd_section *)(plVar53->wild_statement).section_list == pbVar54)" ( (binary_expression "(bfd_section *)(plVar53->wild_statement).section_list == pbVar54" (cast_expression "(bfd_section *)(plVar53->wild_statement).section_list" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar53->wild_statement).section_list" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier)) == identifier) )) (compound_statement "{\n              plVar67 = (plVar53->wild_statement).children.head;\n              if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }\n              plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;\n              local_6c = plVar60;\n              if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;\n            }" { (expression_statement "plVar67 = (plVar53->wild_statement).children.head;" (assignment_expression "plVar67 = (plVar53->wild_statement).children.head" identifier = (field_expression "(plVar53->wild_statement).children.head" (field_expression "(plVar53->wild_statement).children" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (plVar67 != (lang_statement_union *)0x0) {\n                plVar48 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }" if (parenthesized_expression "(plVar67 != (lang_statement_union *)0x0)" ( (binary_expression "plVar67 != (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 = &(plVar67->wild_statement).children;\n                plVar58 = (plVar67->wild_statement).children.head;\n                goto LAB_0002a051;\n              }" { (expression_statement "plVar48 = &(plVar67->wild_statement).children;" (assignment_expression "plVar48 = &(plVar67->wild_statement).children" identifier = (pointer_expression "&(plVar67->wild_statement).children" & (field_expression "(plVar67->wild_statement).children" (parenthesized_expression "(plVar67->wild_statement)" ( (field_expression "plVar67->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "plVar58 = (plVar67->wild_statement).children.head;" (assignment_expression "plVar58 = (plVar67->wild_statement).children.head" identifier = (field_expression "(plVar67->wild_statement).children.head" (field_expression "(plVar67->wild_statement).children" (parenthesized_expression "(plVar67->wild_statement)" ( (field_expression "plVar67->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto LAB_0002a051;" goto statement_identifier ;) })) (expression_statement "plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;" (assignment_expression "plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar53->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar53->wild_statement).children.tail" (field_expression "(plVar53->wild_statement).children" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "local_6c = plVar60;" (assignment_expression "local_6c = plVar60" identifier = identifier) ;) (if_statement "if (plVar53 == (lang_statement_union *)0x0) goto LAB_0002a010;" if (parenthesized_expression "(plVar53 == (lang_statement_union *)0x0)" ( (binary_expression "plVar53 == (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_0002a010;" goto statement_identifier ;)) })) (if_statement "if (((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)) {\n              plVar60 = plVar53;\n            }" if (parenthesized_expression "(((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0))" ( (binary_expression "((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0) &&\n               ((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)" (parenthesized_expression "((bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0)" ( (binary_expression "(bfd_section *)(plVar53->wild_statement).section_list != (bfd_section *)0x0" (cast_expression "(bfd_section *)(plVar53->wild_statement).section_list" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar53->wild_statement).section_list" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier)) != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((plVar53->wild_statement).children.head != (lang_statement_union *)0x0)" ( (binary_expression "(plVar53->wild_statement).children.head != (lang_statement_union *)0x0" (field_expression "(plVar53->wild_statement).children.head" (field_expression "(plVar53->wild_statement).children" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->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              plVar60 = plVar53;\n            }" { (expression_statement "plVar60 = plVar53;" (assignment_expression "plVar60 = plVar53" identifier = identifier) ;) })) (expression_statement "plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail;" (assignment_expression "plVar53 = (lang_statement_union *)(plVar53->wild_statement).children.tail" identifier = (cast_expression "(lang_statement_union *)(plVar53->wild_statement).children.tail" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar53->wild_statement).children.tail" (field_expression "(plVar53->wild_statement).children" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) }) while (parenthesized_expression "(plVar53 != (lang_statement_union *)0x0)" ( (binary_expression "plVar53 != (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_0002a010:\n          if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }" statement_identifier : (if_statement "if (local_6c != (lang_statement_union *)0x0) {\n            plVar58 = local_6c;\n          }" if (parenthesized_expression "(local_6c != (lang_statement_union *)0x0)" ( (binary_expression "local_6c != (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            plVar58 = local_6c;\n          }" { (expression_statement "plVar58 = local_6c;" (assignment_expression "plVar58 = local_6c" identifier = identifier) ;) }))) })) (expression_statement "plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section;" (assignment_expression "plVar48 = (lang_statement_list_type *)&(plVar58->data_statement).output_section" identifier = (cast_expression "(lang_statement_list_type *)&(plVar58->data_statement).output_section" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar58->data_statement).output_section" & (field_expression "(plVar58->data_statement).output_section" (parenthesized_expression "(plVar58->data_statement)" ( (field_expression "plVar58->data_statement" identifier -> field_identifier) )) . field_identifier)))) ;) (for_statement "for (plVar58 = *(lang_statement_union **)plVar48; plVar58 != (lang_statement_union *)0x0;\n            plVar58 = (plVar58->wild_statement).children.head) {\n          if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }" for ( (assignment_expression "plVar58 = *(lang_statement_union **)plVar48" identifier = (pointer_expression "*(lang_statement_union **)plVar48" * (cast_expression "(lang_statement_union **)plVar48" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (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 & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }\n          plVar48 = &(plVar58->wild_statement).children;\n        }" { (if_statement "if ((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)) {\n            plVar58 = plVar48->head;\n            break;\n          }" if (parenthesized_expression "((((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0))" ( (binary_expression "(((uint)(plVar58->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&\n             (((plVar58->reloc_statement).section)->lineno_count == 0)" (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) )) && (parenthesized_expression "(((plVar58->reloc_statement).section)->lineno_count == 0)" ( (binary_expression "((plVar58->reloc_statement).section)->lineno_count == 0" (field_expression "((plVar58->reloc_statement).section)->lineno_count" (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            plVar58 = plVar48->head;\n            break;\n          }" { (expression_statement "plVar58 = plVar48->head;" (assignment_expression "plVar58 = plVar48->head" identifier = (field_expression "plVar48->head" identifier -> field_identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "plVar48 = &(plVar58->wild_statement).children;" (assignment_expression "plVar48 = &(plVar58->wild_statement).children" identifier = (pointer_expression "&(plVar58->wild_statement).children" & (field_expression "(plVar58->wild_statement).children" (parenthesized_expression "(plVar58->wild_statement)" ( (field_expression "plVar58->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) })) (labeled_statement "LAB_0002a051:\n        local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;" statement_identifier : (expression_statement "local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section;" (assignment_expression "local_6c = (lang_statement_union *)&(plVar49->data_statement).output_section" identifier = (cast_expression "(lang_statement_union *)&(plVar49->data_statement).output_section" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(plVar49->data_statement).output_section" & (field_expression "(plVar49->data_statement).output_section" (parenthesized_expression "(plVar49->data_statement)" ( (field_expression "plVar49->data_statement" identifier -> field_identifier) )) . field_identifier)))) ;)) (if_statement "if (pbVar37 == (bfd_section *)0x0) {\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }\n        else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }" if (parenthesized_expression "(pbVar37 == (bfd_section *)0x0)" ( (binary_expression "pbVar37 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          plVar48->head = plVar49;\n          plVar53 = (plVar49->wild_statement).children.head;\n          (plVar49->data_statement).output_section = (asection *)plVar58;\n          plVar49 = plVar53;\n        }" { (expression_statement "plVar48->head = plVar49;" (assignment_expression "plVar48->head = plVar49" (field_expression "plVar48->head" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar53 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar53 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "(plVar49->data_statement).output_section = (asection *)plVar58;" (assignment_expression "(plVar49->data_statement).output_section = (asection *)plVar58" (field_expression "(plVar49->data_statement).output_section" (parenthesized_expression "(plVar49->data_statement)" ( (field_expression "plVar49->data_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(asection *)plVar58" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "plVar49 = plVar53;" (assignment_expression "plVar49 = plVar53" identifier = identifier) ;) }) (else_clause "else {\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }" else (compound_statement "{\n          paVar47 = (plVar49->data_statement).output_section;\n          if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }\n          plVar48->head = plVar49;\n          plVar49 = *(lang_statement_union **)local_6c;\n          *(lang_statement_union **)local_6c = plVar58;\n          if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }\n        }" { (expression_statement "paVar47 = (plVar49->data_statement).output_section;" (assignment_expression "paVar47 = (plVar49->data_statement).output_section" identifier = (field_expression "(plVar49->data_statement).output_section" (parenthesized_expression "(plVar49->data_statement)" ( (field_expression "plVar49->data_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (paVar47 != (asection *)0x0) {\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }" if (parenthesized_expression "(paVar47 != (asection *)0x0)" ( (binary_expression "paVar47 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }\n          }" { (expression_statement "pbVar54 = (bfd_section *)paVar47->prev->lineno_count;" (assignment_expression "pbVar54 = (bfd_section *)paVar47->prev->lineno_count" identifier = (cast_expression "(bfd_section *)paVar47->prev->lineno_count" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar47->prev->lineno_count" (field_expression "paVar47->prev" identifier -> field_identifier) -> field_identifier))) ;) (while_statement "while (pbVar37 == pbVar54) {\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }" while (parenthesized_expression "(pbVar37 == pbVar54)" ( (binary_expression "pbVar37 == pbVar54" identifier == identifier) )) (compound_statement "{\n              local_6c = (lang_statement_union *)&paVar47->field_0x18;\n              paVar47 = *(asection **)&paVar47->field_0x18;\n              if (paVar47 == (asection *)0x0) break;\n              pbVar54 = (bfd_section *)paVar47->prev->lineno_count;\n            }" { (expression_statement "local_6c = (lang_statement_union *)&paVar47->field_0x18;" (assignment_expression "local_6c = (lang_statement_union *)&paVar47->field_0x18" identifier = (cast_expression "(lang_statement_union *)&paVar47->field_0x18" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar47->field_0x18" & (field_expression "paVar47->field_0x18" identifier -> field_identifier)))) ;) (expression_statement "paVar47 = *(asection **)&paVar47->field_0x18;" (assignment_expression "paVar47 = *(asection **)&paVar47->field_0x18" identifier = (pointer_expression "*(asection **)&paVar47->field_0x18" * (cast_expression "(asection **)&paVar47->field_0x18" ( (type_descriptor "asection **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&paVar47->field_0x18" & (field_expression "paVar47->field_0x18" identifier -> field_identifier))))) ;) (if_statement "if (paVar47 == (asection *)0x0) break;" if (parenthesized_expression "(paVar47 == (asection *)0x0)" ( (binary_expression "paVar47 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pbVar54 = (bfd_section *)paVar47->prev->lineno_count;" (assignment_expression "pbVar54 = (bfd_section *)paVar47->prev->lineno_count" identifier = (cast_expression "(bfd_section *)paVar47->prev->lineno_count" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar47->prev->lineno_count" (field_expression "paVar47->prev" identifier -> field_identifier) -> field_identifier))) ;) })) })) (expression_statement "plVar48->head = plVar49;" (assignment_expression "plVar48->head = plVar49" (field_expression "plVar48->head" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar49 = *(lang_statement_union **)local_6c;" (assignment_expression "plVar49 = *(lang_statement_union **)local_6c" identifier = (pointer_expression "*(lang_statement_union **)local_6c" * (cast_expression "(lang_statement_union **)local_6c" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "*(lang_statement_union **)local_6c = plVar58;" (assignment_expression "*(lang_statement_union **)local_6c = plVar58" (pointer_expression "*(lang_statement_union **)local_6c" * (cast_expression "(lang_statement_union **)local_6c" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (if_statement "if (pbVar37->used_by_bfd != (void *)0x0) {\n            *(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }" if (parenthesized_expression "(pbVar37->used_by_bfd != (void *)0x0)" ( (binary_expression "pbVar37->used_by_bfd != (void *)0x0" (field_expression "pbVar37->used_by_bfd" 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)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);\n          }" { (expression_statement "*(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18);" (assignment_expression "*(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18) =\n                 (lang_data_statement_type *)((int)local_6c + -0x18)" (pointer_expression "*(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18)" * (cast_expression "(lang_data_statement_type **)((int)pbVar37->used_by_bfd + 0x18)" ( (type_descriptor "lang_data_statement_type **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pbVar37->used_by_bfd + 0x18)" ( (binary_expression "(int)pbVar37->used_by_bfd + 0x18" (cast_expression "(int)pbVar37->used_by_bfd" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar37->used_by_bfd" identifier -> field_identifier)) + number_literal) )))) = (cast_expression "(lang_data_statement_type *)((int)local_6c + -0x18)" ( (type_descriptor "lang_data_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + -0x18)" ( (binary_expression "(int)local_6c + -0x18" (cast_expression "(int)local_6c" ( (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    pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar26);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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    pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);\n    minfo(pcVar26);\n    for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 0x1e);\n      if (paVar5->ref != (bfd *)0x0) {\n        minfo("%pB ",paVar5->ref);\n      }\n      minfo("(%pT)\n",paVar5->name);\n    }\n  }" { (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"\n                                ,5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "minfo(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) (for_statement "for (paVar5 = asneeded_list_head; paVar5 != (asneeded_minfo *)0x0; paVar5 = paVar5->next) {\n      minfo("%s",paVar5->soname);\n      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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      sVar27 = strlen(paVar5->soname);\n      if (0x1c < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }\n      do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 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 "sVar27 = strlen(paVar5->soname);" (assignment_expression "sVar27 = 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 < sVar27) {\n        print_nl();\n        sVar27 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar27)" ( (binary_expression "0x1c < sVar27" number_literal < identifier) )) (compound_statement "{\n        print_nl();\n        sVar27 = 0;\n      }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar27 = 0;" (assignment_expression "sVar27 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        print_space();\n        sVar27 = sVar27 + 1;\n      } while (sVar27 != 0x1e);" do (compound_statement "{\n        print_space();\n        sVar27 = sVar27 + 1;\n      }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar27 = sVar27 + 1;" (assignment_expression "sVar27 = sVar27 + 1" identifier = (binary_expression "sVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar27 != 0x1e)" ( (binary_expression "sVar27 != 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 "()" ( ))) ;) (for_statement "for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\nLAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }\n    pbVar6 = (plVar49->input_statement).the_bfd;\n    iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n    pbVar1 = link_info.output_bfd;\n    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n      if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }\n    if (iVar25 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;\n    uVar66 = bfd_printable_name(link_info.output_bfd);\n    uVar33 = bfd_printable_name(pbVar6);\n    pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);\n    einfo(pcVar26,uVar33,pbVar6,uVar66);\n  }" for ( (assignment_expression "plVar49 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ; (binary_expression "plVar49 != (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 "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\nLAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }\n    pbVar6 = (plVar49->input_statement).the_bfd;\n    iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);\n    pbVar1 = link_info.output_bfd;\n    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {\n      if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }\n    if (iVar25 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;\n    uVar66 = bfd_printable_name(link_info.output_bfd);\n    uVar33 = bfd_printable_name(pbVar6);\n    pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);\n    einfo(pcVar26,uVar33,pbVar6,uVar66);\n  }" { (labeled_statement "LAB_00028a10:\n    if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }" statement_identifier : (if_statement "if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0) {\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }" if (parenthesized_expression "(((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0)" ( (binary_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) != 0" (parenthesized_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar49->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;\njoined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;\n      goto LAB_00028a10;\n    }" { (labeled_statement "LAB_00028ac0:\n      plVar49 = (plVar49->wild_statement).children.head;" statement_identifier : (expression_statement "plVar49 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (labeled_statement "joined_r0x00029918:\n      if (plVar49 == (lang_statement_union *)0x0) break;" statement_identifier : (if_statement "if (plVar49 == (lang_statement_union *)0x0) break;" if (parenthesized_expression "(plVar49 == (lang_statement_union *)0x0)" ( (binary_expression "plVar49 == (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 ;))) (goto_statement "goto LAB_00028a10;" goto statement_identifier ;) }))) (expression_statement "pbVar6 = (plVar49->input_statement).the_bfd;" (assignment_expression "pbVar6 = (plVar49->input_statement).the_bfd" identifier = (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar25 = bfd_arch_get_compatible\n                       (pbVar6,link_info.output_bfd,command_line.accept_unknown_input_arch);" (assignment_expression "iVar25 = 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 "pbVar1 = link_info.output_bfd;" (assignment_expression "pbVar1 = 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 (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\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 (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      pcVar26 = pbVar45->name;\n      pcVar30 = pbVar32->name;\n      pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);\n      if (iVar25 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;\n      uVar66 = 0;\n      if (command_line.warn_mismatch == 0) {\n        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }\n      bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);\n      if (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;\n      plVar49 = (plVar49->wild_statement).children.head;\n      goto joined_r0x00029918;\n    }" { (if_statement "if (iVar25 == 0) {\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }\n      else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n      }" { (if_statement "if ((pbVar6->field_0x28 & 0x20) == 0) goto LAB_00028d68;" 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) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (expression_statement "pbVar32 = pbVar6->xvec;" (assignment_expression "pbVar32 = pbVar6->xvec" identifier = (field_expression "pbVar6->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar45 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar45 = (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)) ;) }) (else_clause "else {\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }" else (compound_statement "{\n        pbVar32 = pbVar6->xvec;\n        pbVar45 = (link_info.output_bfd)->xvec;\n        if ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;\n      }" { (expression_statement "pbVar32 = pbVar6->xvec;" (assignment_expression "pbVar32 = pbVar6->xvec" identifier = (field_expression "pbVar6->xvec" identifier -> field_identifier)) ;) (expression_statement "pbVar45 = (link_info.output_bfd)->xvec;" (assignment_expression "pbVar45 = (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 ((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))\n        goto LAB_00028a63;" if (parenthesized_expression "((pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0))" ( (binary_expression "(pbVar32->flavour == pbVar45->flavour) || ((pbVar6->field_0x28 & 0x20) == 0)" (parenthesized_expression "(pbVar32->flavour == pbVar45->flavour)" ( (binary_expression "pbVar32->flavour == pbVar45->flavour" (field_expression "pbVar32->flavour" identifier -> field_identifier) == (field_expression "pbVar45->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_00028a63;" goto statement_identifier ;)) }))) (expression_statement "pcVar26 = pbVar45->name;" (assignment_expression "pcVar26 = pbVar45->name" identifier = (field_expression "pbVar45->name" identifier -> field_identifier)) ;) (expression_statement "pcVar30 = pbVar32->name;" (assignment_expression "pcVar30 = pbVar32->name" identifier = (field_expression "pbVar32->name" identifier -> field_identifier)) ;) (expression_statement "pcVar69 = (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 "pcVar69 = (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(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1);" (call_expression "einfo(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1)" identifier (argument_list "(pcVar69,pcVar30,pbVar6,pcVar26,pbVar1)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar25 == 0) goto LAB_00028d68;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (labeled_statement "LAB_00028a63:\n      if (pbVar6->section_count == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (pbVar6->section_count == 0) goto LAB_00028ac0;" 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_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar66 = 0;" (assignment_expression "uVar66 = 0" identifier = number_literal) ;) (if_statement "if (command_line.warn_mismatch == 0) {\n        uVar66 = 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        uVar66 = bfd_set_error_handler(ignore_bfd_errors);\n      }" { (expression_statement "uVar66 = bfd_set_error_handler(ignore_bfd_errors);" (assignment_expression "uVar66 = 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 "bVar28 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(pbVar6,&link_info);" (assignment_expression "bVar28 = (*(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 (bVar28 == 0) {\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }" if (parenthesized_expression "(bVar28 == 0)" ( (binary_expression "bVar28 == 0" identifier == number_literal) )) (compound_statement "{\n        if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar66);\n        goto LAB_00028ac0;\n      }" { (if_statement "if (command_line.warn_mismatch != 0) {\n          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\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          pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );\n          einfo(pcVar26,pbVar6);\n          goto LAB_00029904;\n        }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     );" (assignment_expression "pcVar26 = (char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     )" identifier = (cast_expression "(char *)dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     )" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     )" identifier (argument_list "(0,"%X%P: failed to merge target specific data of file %pB\n",5\n                                     )" ( 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(pcVar26,pbVar6);" (call_expression "einfo(pcVar26,pbVar6)" identifier (argument_list "(pcVar26,pbVar6)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00029904;" goto statement_identifier ;) })) (labeled_statement "LAB_00028aaa:\n        bfd_set_error_handler(uVar66);" statement_identifier : (expression_statement "bfd_set_error_handler(uVar66);" (call_expression "bfd_set_error_handler(uVar66)" identifier (argument_list "(uVar66)" ( identifier ))) ;)) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;) })) (labeled_statement "LAB_00029904:\n      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;" statement_identifier : (if_statement "if (command_line.warn_mismatch == 0) goto LAB_00028aaa;" 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_00028aaa;" goto statement_identifier ;))) (expression_statement "plVar49 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (goto_statement "goto joined_r0x00029918;" goto statement_identifier ;) })) (if_statement "if (iVar25 != 0) goto LAB_00028a63;" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00028a63;" goto statement_identifier ;)) (labeled_statement "LAB_00028d68:\n    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (command_line.warn_mismatch == 0) goto LAB_00028ac0;" 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_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar66 = bfd_printable_name(link_info.output_bfd);" (assignment_expression "uVar66 = 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 "uVar33 = bfd_printable_name(pbVar6);" (assignment_expression "uVar33 = bfd_printable_name(pbVar6)" identifier = (call_expression "bfd_printable_name(pbVar6)" identifier (argument_list "(pbVar6)" ( identifier )))) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                                ,5);" (assignment_expression "pcVar26 = (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(pcVar26,uVar33,pbVar6,uVar66);" (call_expression "einfo(pcVar26,uVar33,pbVar6,uVar66)" identifier (argument_list "(pcVar26,uVar33,pbVar6,uVar66)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (command_line.version_exports_section != (char *)0x0) {\n    orig = (bfd_elf_version_expr *)0x0;\n    plVar49 = file_chain.head;\n    while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    pbVar31 = 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 = pbVar31;\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    plVar49 = file_chain.head;\n    while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    pbVar31 = 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 = pbVar31;\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)) ;) (expression_statement "plVar49 = file_chain.head;" (assignment_expression "plVar49 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (while_statement "while (plVar49 != (lang_statement_union *)0x0) {\n      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }" while (parenthesized_expression "(plVar49 != (lang_statement_union *)0x0)" ( (binary_expression "plVar49 != (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      while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }\n      iVar39 = *(int *)(iVar25 + 0x2c);\n      uVar66 = *(undefined4 *)(iVar25 + 0x30);\n      pcVar26 = (char *)xmalloc(iVar39);\n      iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);\n      if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }\n      pcVar30 = pcVar26 + iVar39;\n      for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }\n      plVar49 = (plVar49->wild_statement).children.head;\n      *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;\n    }" { (while_statement "while (iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0) {\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }" while (parenthesized_expression "(iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0)" ( (comma_expression "iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports"),\n            iVar25 == 0" (assignment_expression "iVar25 = bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports")" identifier = (call_expression "bfd_get_section_by_name((plVar49->wild_statement).section_list,".exports")" identifier (argument_list "((plVar49->wild_statement).section_list,".exports")" ( (field_expression "(plVar49->wild_statement).section_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) , (string_literal "".exports"" " string_content ") )))) , (binary_expression "iVar25 == 0" identifier == number_literal)) )) (compound_statement "{\n        plVar49 = (plVar49->wild_statement).children.head;\n        if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;\n      }" { (expression_statement "plVar49 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028bc4;" if (parenthesized_expression "(plVar49 == (lang_statement_union *)0x0)" ( (binary_expression "plVar49 == (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_00028bc4;" goto statement_identifier ;)) })) (expression_statement "iVar39 = *(int *)(iVar25 + 0x2c);" (assignment_expression "iVar39 = *(int *)(iVar25 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar25 + 0x2c)" * (cast_expression "(int *)(iVar25 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x2c)" ( (binary_expression "iVar25 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar66 = *(undefined4 *)(iVar25 + 0x30);" (assignment_expression "uVar66 = *(undefined4 *)(iVar25 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar25 + 0x30)" * (cast_expression "(undefined4 *)(iVar25 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x30)" ( (binary_expression "iVar25 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "pcVar26 = (char *)xmalloc(iVar39);" (assignment_expression "pcVar26 = (char *)xmalloc(iVar39)" identifier = (cast_expression "(char *)xmalloc(iVar39)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar39)" identifier (argument_list "(iVar39)" ( identifier ))))) ;) (expression_statement "iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66);" (assignment_expression "iVar29 = bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66)" identifier = (call_expression "bfd_get_section_contents\n                         ((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66)" identifier (argument_list "((plVar49->wild_statement).section_list,iVar25,pcVar26,0,0,iVar39,uVar66)" ( (field_expression "(plVar49->wild_statement).section_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar29 == 0) {\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }" if (parenthesized_expression "(iVar29 == 0)" ( (binary_expression "iVar29 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        einfo(pcVar30,iVar25);\n      }" { (expression_statement "pcVar30 = (char *)dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,iVar25);" (call_expression "einfo(pcVar30,iVar25)" identifier (argument_list "(pcVar30,iVar25)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar30 = pcVar26 + iVar39;" (assignment_expression "pcVar30 = pcVar26 + iVar39" identifier = (binary_expression "pcVar26 + iVar39" identifier + identifier)) ;) (for_statement "for (; pcVar26 < pcVar30; pcVar26 = pcVar26 + sVar27 + 1) {\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }" for ( ; (binary_expression "pcVar26 < pcVar30" identifier < identifier) ; (assignment_expression "pcVar26 = pcVar26 + sVar27 + 1" identifier = (binary_expression "pcVar26 + sVar27 + 1" (binary_expression "pcVar26 + sVar27" identifier + identifier) + number_literal)) ) (compound_statement "{\n        orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);\n        sVar27 = strlen(pcVar26);\n      }" { (expression_statement "orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0);" (assignment_expression "orig = lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0)" identifier = (call_expression "lang_new_vers_pattern(orig,pcVar26,(char *)0x0,0)" identifier (argument_list "(orig,pcVar26,(char *)0x0,0)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (expression_statement "sVar27 = strlen(pcVar26);" (assignment_expression "sVar27 = strlen(pcVar26)" identifier = (call_expression "strlen(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) ;) })) (expression_statement "plVar49 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_00028bc4:\n    pbVar31 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);" statement_identifier : (expression_statement "pbVar31 = lang_new_vers_pattern((bfd_elf_version_expr *)0x0,"*",(char *)0x0,0);" (assignment_expression "pbVar31 = 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 = pbVar31;" (assignment_expression "(version->locals).list = pbVar31" (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 "puVar20 = PTR__sch_istable_00092f98;" (assignment_expression "puVar20 = PTR__sch_istable_00092f98" identifier = identifier) ;) (if_statement "if (config.build_constructors != 0) {\n    local_54 = link_info.input_bfds;\n    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (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_54 = link_info.input_bfds;\n    cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;\n    if (link_info.input_bfds != (bfd *)0x0) {\n      do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);\n    }\n  }" { (expression_statement "local_54 = link_info.input_bfds;" (assignment_expression "local_54 = link_info.input_bfds" identifier = (field_expression "link_info.input_bfds" identifier . field_identifier)) ;) (expression_statement "cVar2 = (link_info.output_bfd)->xvec->symbol_leading_char;" (assignment_expression "cVar2 = (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 (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (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 (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);\n    }" { (do_statement "do {\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      } while (local_54 != (bfd *)0x0);" do (compound_statement "{\n        for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }\nLAB_0002a640:\n        local_54 = (local_54->link).next;\n      }" { (for_statement "for (pbVar37 = local_54->sections; pbVar37 != (bfd_section *)0x0; pbVar37 = pbVar37->next) {\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }" for ( (assignment_expression "pbVar37 = local_54->sections" identifier = (field_expression "local_54->sections" identifier -> field_identifier)) ; (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ) (compound_statement "{\n          while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);\n          pcVar26 = (char *)xmalloc(sVar27 + 10);\n          *pcVar26 = cVar2;\n          sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);\n          lang_define_start_stop(pcVar26,pbVar37);\n          pcVar26[1] = cVar2;\n          builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);\n          lang_define_start_stop(pcVar26 + 1,pbVar37);\n          free(pcVar26);\n        }" { (while_statement "while( true ) {\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar9 = (byte *)pbVar37->name;\n            bVar44 = *pbVar9;\n            if (bVar44 == 0) break;\n            bVar3 = puVar20[(uint)bVar44 * 2];\n            pbVar42 = pbVar9;\n            while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }\n            pbVar37 = pbVar37->next;\n            if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;\n          }" { (expression_statement "pbVar9 = (byte *)pbVar37->name;" (assignment_expression "pbVar9 = (byte *)pbVar37->name" identifier = (cast_expression "(byte *)pbVar37->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar37->name" identifier -> field_identifier))) ;) (expression_statement "bVar44 = *pbVar9;" (assignment_expression "bVar44 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if (bVar44 == 0) break;" if (parenthesized_expression "(bVar44 == 0)" ( (binary_expression "bVar44 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar3 = puVar20[(uint)bVar44 * 2];" (assignment_expression "bVar3 = puVar20[(uint)bVar44 * 2]" identifier = (subscript_expression "puVar20[(uint)bVar44 * 2]" identifier [ (binary_expression "(uint)bVar44 * 2" (cast_expression "(uint)bVar44" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar42 = pbVar9;" (assignment_expression "pbVar42 = pbVar9" identifier = identifier) ;) (while_statement "while (((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))) {\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }" while (parenthesized_expression "(((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f)))" ( (parenthesized_expression "((bVar3 & 0x8c) != 0 || (bVar44 == 0x5f))" ( (binary_expression "(bVar3 & 0x8c) != 0 || (bVar44 == 0x5f)" (binary_expression "(bVar3 & 0x8c) != 0" (parenthesized_expression "(bVar3 & 0x8c)" ( (binary_expression "bVar3 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar44 == 0x5f)" ( (binary_expression "bVar44 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar42 = pbVar42 + 1;\n              bVar44 = *pbVar42;\n              if (bVar44 == 0) goto LAB_0002a660;\n              bVar3 = puVar20[(uint)bVar44 * 2];\n            }" { (expression_statement "pbVar42 = pbVar42 + 1;" (assignment_expression "pbVar42 = pbVar42 + 1" identifier = (binary_expression "pbVar42 + 1" identifier + number_literal)) ;) (expression_statement "bVar44 = *pbVar42;" (assignment_expression "bVar44 = *pbVar42" identifier = (pointer_expression "*pbVar42" * identifier)) ;) (if_statement "if (bVar44 == 0) goto LAB_0002a660;" if (parenthesized_expression "(bVar44 == 0)" ( (binary_expression "bVar44 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a660;" goto statement_identifier ;)) (expression_statement "bVar3 = puVar20[(uint)bVar44 * 2];" (assignment_expression "bVar3 = puVar20[(uint)bVar44 * 2]" identifier = (subscript_expression "puVar20[(uint)bVar44 * 2]" identifier [ (binary_expression "(uint)bVar44 * 2" (cast_expression "(uint)bVar44" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "pbVar37 = pbVar37->next;" (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar37 == (bfd_section *)0x0) goto LAB_0002a640;" if (parenthesized_expression "(pbVar37 == (bfd_section *)0x0)" ( (binary_expression "pbVar37 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a640;" goto statement_identifier ;)) })) (labeled_statement "LAB_0002a660:\n          sVar27 = strlen((char *)pbVar9);" statement_identifier : (expression_statement "sVar27 = strlen((char *)pbVar9);" (assignment_expression "sVar27 = 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 "pcVar26 = (char *)xmalloc(sVar27 + 10);" (assignment_expression "pcVar26 = (char *)xmalloc(sVar27 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar27 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar27 + 10)" identifier (argument_list "(sVar27 + 10)" ( (binary_expression "sVar27 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar26 = cVar2;" (assignment_expression "*pcVar26 = cVar2" (pointer_expression "*pcVar26" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9);" (call_expression "sprintf(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9)" identifier (argument_list "(pcVar26 + (cVar2 != '\0'),"__start_%s",pbVar9)" ( (binary_expression "pcVar26 + (cVar2 != '\0')" identifier + (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar26,pbVar37);" (call_expression "lang_define_start_stop(pcVar26,pbVar37)" identifier (argument_list "(pcVar26,pbVar37)" ( identifier , identifier ))) ;) (expression_statement "pcVar26[1] = cVar2;" (assignment_expression "pcVar26[1] = cVar2" (subscript_expression "pcVar26[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6)" identifier (argument_list "(pcVar26 + (2 - (uint)(cVar2 == '\0')),"__stop",6)" ( (binary_expression "pcVar26 + (2 - (uint)(cVar2 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar2 == '\0'))" ( (binary_expression "2 - (uint)(cVar2 == '\0')" number_literal - (call_expression "(uint)(cVar2 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar26 + 1,pbVar37);" (call_expression "lang_define_start_stop(pcVar26 + 1,pbVar37)" identifier (argument_list "(pcVar26 + 1,pbVar37)" ( (binary_expression "pcVar26 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar26);" (call_expression "free(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) })) (labeled_statement "LAB_0002a640:\n        local_54 = (local_54->link).next;" statement_identifier : (expression_statement "local_54 = (local_54->link).next;" (assignment_expression "local_54 = (local_54->link).next" identifier = (field_expression "(local_54->link).next" (parenthesized_expression "(local_54->link)" ( (field_expression "local_54->link" identifier -> field_identifier) )) . field_identifier)) ;)) }) while (parenthesized_expression "(local_54 != (bfd *)0x0)" ( (binary_expression "local_54 != (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 "pmVar57 = lang_memory_region_list;" (assignment_expression "pmVar57 = lang_memory_region_list" identifier = identifier) ;) (labeled_statement "joined_r0x00028c51:\n  if (pmVar57 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (pmVar57 != (lang_memory_region_type *)0x0) {\n    do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(pmVar57 != (lang_memory_region_type *)0x0)" ( (binary_expression "pmVar57 != (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 (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (memory_region_struct *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (memory_region_struct *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }\n      if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }\n      pmVar57 = pmVar57->next;\n      if (pmVar57 == (memory_region_struct *)0x0) break;\n    }" { (if_statement "if (pmVar57->origin_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }" if (parenthesized_expression "(pmVar57->origin_exp != (etree_type *)0x0)" ( (binary_expression "pmVar57->origin_exp != (etree_type *)0x0" (field_expression "pmVar57->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(pmVar57->origin_exp);\n        uVar33 = expld.result.value._4_4_;\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar57->origin_exp);" (call_expression "exp_fold_tree_no_dot(pmVar57->origin_exp)" identifier (argument_list "(pmVar57->origin_exp)" ( (field_expression "pmVar57->origin_exp" identifier -> field_identifier) ))) ;) (expression_statement "uVar33 = expld.result.value._4_4_;" (assignment_expression "uVar33 = expld.result.value._4_4_" identifier = (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "uVar66 = (undefined4)expld.result.value;" (assignment_expression "uVar66 = (undefined4)expld.result.value" identifier = (cast_expression "(undefined4)expld.result.value" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (expld.result.valid_p == 0) {\n          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }\n        else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\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          pcVar26 = (pmVar57->name_list).name;\n          pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          einfo(pcVar30,pcVar26);\n        }" { (expression_statement "pcVar26 = (pmVar57->name_list).name;" (assignment_expression "pcVar26 = (pmVar57->name_list).name" identifier = (field_expression "(pmVar57->name_list).name" (parenthesized_expression "(pmVar57->name_list)" ( (field_expression "pmVar57->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar30 = (char *)dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }" else (compound_statement "{\n          *(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;\n          *(undefined4 *)&pmVar57->origin = uVar66;\n          *(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;\n          *(undefined4 *)&pmVar57->current = uVar66;\n        }" { (expression_statement "*(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_;" (assignment_expression "*(undefined4 *)((int)&pmVar57->current + 4) = expld.result.value._4_4_" (pointer_expression "*(undefined4 *)((int)&pmVar57->current + 4)" * (cast_expression "(undefined4 *)((int)&pmVar57->current + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar57->current + 4)" ( (binary_expression "(int)&pmVar57->current + 4" (cast_expression "(int)&pmVar57->current" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar57->current" & (field_expression "pmVar57->current" identifier -> field_identifier))) + number_literal) )))) = (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&pmVar57->origin = uVar66;" (assignment_expression "*(undefined4 *)&pmVar57->origin = uVar66" (pointer_expression "*(undefined4 *)&pmVar57->origin" * (cast_expression "(undefined4 *)&pmVar57->origin" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar57->origin" & (field_expression "pmVar57->origin" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pmVar57->origin + 4) = uVar33;" (assignment_expression "*(undefined4 *)((int)&pmVar57->origin + 4) = uVar33" (pointer_expression "*(undefined4 *)((int)&pmVar57->origin + 4)" * (cast_expression "(undefined4 *)((int)&pmVar57->origin + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar57->origin + 4)" ( (binary_expression "(int)&pmVar57->origin + 4" (cast_expression "(int)&pmVar57->origin" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar57->origin" & (field_expression "pmVar57->origin" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)&pmVar57->current = uVar66;" (assignment_expression "*(undefined4 *)&pmVar57->current = uVar66" (pointer_expression "*(undefined4 *)&pmVar57->current" * (cast_expression "(undefined4 *)&pmVar57->current" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar57->current" & (field_expression "pmVar57->current" identifier -> field_identifier)))) = identifier) ;) }))) })) (if_statement "if (pmVar57->length_exp != (etree_type *)0x0) {\n        exp_fold_tree_no_dot(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }" if (parenthesized_expression "(pmVar57->length_exp != (etree_type *)0x0)" ( (binary_expression "pmVar57->length_exp != (etree_type *)0x0" (field_expression "pmVar57->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(pmVar57->length_exp);\n        uVar66 = (undefined4)expld.result.value;\n        if (expld.result.valid_p == 0) goto LAB_00028dd0;\n        *(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;\n        *(undefined4 *)&pmVar57->length = uVar66;\n      }" { (expression_statement "exp_fold_tree_no_dot(pmVar57->length_exp);" (call_expression "exp_fold_tree_no_dot(pmVar57->length_exp)" identifier (argument_list "(pmVar57->length_exp)" ( (field_expression "pmVar57->length_exp" identifier -> field_identifier) ))) ;) (expression_statement "uVar66 = (undefined4)expld.result.value;" (assignment_expression "uVar66 = (undefined4)expld.result.value" identifier = (cast_expression "(undefined4)expld.result.value" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (expld.result.valid_p == 0) goto LAB_00028dd0;" 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_00028dd0;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_;" (assignment_expression "*(undefined4 *)((int)&pmVar57->length + 4) = expld.result.value._4_4_" (pointer_expression "*(undefined4 *)((int)&pmVar57->length + 4)" * (cast_expression "(undefined4 *)((int)&pmVar57->length + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pmVar57->length + 4)" ( (binary_expression "(int)&pmVar57->length + 4" (cast_expression "(int)&pmVar57->length" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pmVar57->length" & (field_expression "pmVar57->length" identifier -> field_identifier))) + number_literal) )))) = (field_expression "expld.result.value._4_4_" (field_expression "expld.result.value" (field_expression "expld.result" identifier . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "*(undefined4 *)&pmVar57->length = uVar66;" (assignment_expression "*(undefined4 *)&pmVar57->length = uVar66" (pointer_expression "*(undefined4 *)&pmVar57->length" * (cast_expression "(undefined4 *)&pmVar57->length" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pmVar57->length" & (field_expression "pmVar57->length" identifier -> field_identifier)))) = identifier) ;) })) (expression_statement "pmVar57 = pmVar57->next;" (assignment_expression "pmVar57 = pmVar57->next" identifier = (field_expression "pmVar57->next" identifier -> field_identifier)) ;) (if_statement "if (pmVar57 == (memory_region_struct *)0x0) break;" if (parenthesized_expression "(pmVar57 == (memory_region_struct *)0x0)" ( (binary_expression "pmVar57 == (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 "uVar23 = link_info._0_1_;" (assignment_expression "uVar23 = link_info._0_1_" identifier = (field_expression "link_info._0_1_" identifier . field_identifier)) ;) (expression_statement "plVar49 = file_chain.head;" (assignment_expression "plVar49 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ;) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n    for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->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 (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" { (for_statement "for (; plVar49 != (lang_statement_union *)0x0; plVar49 = (plVar49->wild_statement).children.head\n        ) {\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "plVar49 != (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 "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n      if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0) {\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }" if (parenthesized_expression "(((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0)" ( (binary_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000) == 0" (parenthesized_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000)" ( (binary_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler & 0x2000" (field_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar49->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (pbVar37 = ((plVar49->input_statement).the_bfd)->sections; pbVar37 != (bfd_section *)0x0\n            ; pbVar37 = pbVar37->next) {\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "pbVar37 = ((plVar49->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar49->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar49->input_statement).the_bfd)" ( (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ; (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ) (compound_statement "{\n          if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }\n        }" { (if_statement "if ((pbVar37->flags & 0x2000) == 0) {\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }" if (parenthesized_expression "((pbVar37->flags & 0x2000) == 0)" ( (binary_expression "(pbVar37->flags & 0x2000) == 0" (parenthesized_expression "(pbVar37->flags & 0x2000)" ( (binary_expression "pbVar37->flags & 0x2000" (field_expression "pbVar37->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar37->flags = pbVar37->flags & 0xffff7fff;\n          }" { (expression_statement "pbVar37->flags = pbVar37->flags & 0xffff7fff;" (assignment_expression "pbVar37->flags = pbVar37->flags & 0xffff7fff" (field_expression "pbVar37->flags" identifier -> field_identifier) = (binary_expression "pbVar37->flags & 0xffff7fff" (field_expression "pbVar37->flags" identifier -> field_identifier) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((uVar23 & 0x40) != 0) {\n    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);\n  }" if (parenthesized_expression "((uVar23 & 0x40) != 0)" ( (binary_expression "(uVar23 & 0x40) != 0" (parenthesized_expression "(uVar23 & 0x40)" ( (binary_expression "uVar23 & 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }\n  }" { (for_statement "for (; pbVar6 != (bfd *)0x0; pbVar6 = (pbVar6->link).next) {\n      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 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      iVar25 = bfd_link_check_relocs(pbVar6,&link_info);\n      if (iVar25 == 0) {\n        config.make_executable = 0;\n      }\n    }" { (expression_statement "iVar25 = bfd_link_check_relocs(pbVar6,&link_info);" (assignment_expression "iVar25 = 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 (iVar25 == 0) {\n        config.make_executable = 0;\n      }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 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 "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 "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 "plVar53 = (lang_statement_union *)0x0;" (assignment_expression "plVar53 = (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 "plVar49 = ((lang_output_section_statement.head)->header).next;" (assignment_expression "plVar49 = ((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 (plVar49 == (lang_statement_union *)0x0) {\nLAB_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }\n  }\n  else {\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }" if (parenthesized_expression "(plVar49 == (lang_statement_union *)0x0)" ( (binary_expression "plVar49 == (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_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }\n  }" { (labeled_statement "LAB_00028f94:\n    if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\n    }" statement_identifier : (if_statement "if (plVar58 != (lang_statement_union *)0x0) {\n      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }\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      (plVar58->output_section_statement).constraint =\n           -2 - (plVar58->output_section_statement).constraint;\n      while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\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))) ;) (while_statement "while ((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))) {\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\n      }" while (parenthesized_expression "((plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0)))" ( (parenthesized_expression "(plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0))" ( (binary_expression "plVar53 != plVar58 &&\n             (plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0)" (binary_expression "plVar53 != plVar58" identifier != identifier) && (parenthesized_expression "(plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0)" ( (comma_expression "plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section,\n             plVar58 != (lang_statement_union *)0x0" (assignment_expression "plVar58 = (lang_statement_union *)(plVar58->reloc_statement).section" identifier = (cast_expression "(lang_statement_union *)(plVar58->reloc_statement).section" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar58->reloc_statement).section" (parenthesized_expression "(plVar58->reloc_statement)" ( (field_expression "plVar58->reloc_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))) ))) )) )) (compound_statement "{\n        (plVar58->output_section_statement).constraint =\n             -2 - (plVar58->output_section_statement).constraint;\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))) ;) })) }))) }) (else_clause "else {\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }" else (compound_statement "{\n    plVar60 = (lang_statement_union *)0x0;\n    plVar67 = lang_output_section_statement.head;\n    while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }\n    if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }\n    plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);\n    if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;\n    pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);\n    einfo(pcVar30,pcVar26);\n  }" { (expression_statement "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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 "plVar67 = lang_output_section_statement.head;" (assignment_expression "plVar67 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (while_statement "while (plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum) {\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }" while (parenthesized_expression "(plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum)" ( (comma_expression "plVar34 = plVar49, (plVar49->header).type == lang_output_section_statement_enum" (assignment_expression "plVar34 = plVar49" identifier = identifier) , (binary_expression "(plVar49->header).type == lang_output_section_statement_enum" (field_expression "(plVar49->header).type" (parenthesized_expression "(plVar49->header)" ( (field_expression "plVar49->header" identifier -> field_identifier) )) . field_identifier) == identifier)) )) (compound_statement "{\n      if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }\n      (plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;\n      plVar53 = plVar49;\n      plVar58 = plVar49;\n      if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      plVar49 = (plVar34->header).next;\n      plVar60 = plVar58;\n      plVar67 = plVar34;\n      if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;\n    }" { (if_statement "if ((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)) {\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->header).next;\n      }" if (parenthesized_expression "((plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list))" ( (binary_expression "(plVar53 != (lang_statement_union *)0x0) &&\n         (plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)" (parenthesized_expression "(plVar53 != (lang_statement_union *)0x0)" ( (binary_expression "plVar53 != (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 "(plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list)" ( (binary_expression "plVar49 != (lang_statement_union *)(plVar53->wild_statement).section_list" identifier != (cast_expression "(lang_statement_union *)(plVar53->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar53->wild_statement).section_list" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier))) ))) )) (compound_statement "{\n        info_assert("../../ld/ldlang.c",0xea0);\n        plVar34 = (plVar67->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 "plVar34 = (plVar67->header).next;" (assignment_expression "plVar34 = (plVar67->header).next" identifier = (field_expression "(plVar67->header).next" (parenthesized_expression "(plVar67->header)" ( (field_expression "plVar67->header" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "(plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint;" (assignment_expression "(plVar49->output_section_statement).constraint =\n           -2 - (plVar49->output_section_statement).constraint" (field_expression "(plVar49->output_section_statement).constraint" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar49->output_section_statement).constraint" number_literal - (field_expression "(plVar49->output_section_statement).constraint" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "plVar53 = plVar49;" (assignment_expression "plVar53 = plVar49" identifier = identifier) ;) (expression_statement "plVar58 = plVar49;" (assignment_expression "plVar58 = plVar49" identifier = identifier) ;) (if_statement "if (plVar60 != (lang_statement_union *)0x0) goto LAB_00028f8a;" if (parenthesized_expression "(plVar60 != (lang_statement_union *)0x0)" ( (binary_expression "plVar60 != (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_00028f8a;" goto statement_identifier ;)) (labeled_statement "LAB_00028f8c:\n      plVar49 = (plVar34->header).next;" statement_identifier : (expression_statement "plVar49 = (plVar34->header).next;" (assignment_expression "plVar49 = (plVar34->header).next" identifier = (field_expression "(plVar34->header).next" (parenthesized_expression "(plVar34->header)" ( (field_expression "plVar34->header" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "plVar60 = plVar58;" (assignment_expression "plVar60 = plVar58" identifier = identifier) ;) (expression_statement "plVar67 = plVar34;" (assignment_expression "plVar67 = plVar34" identifier = identifier) ;) (if_statement "if (plVar49 == (lang_statement_union *)0x0) goto LAB_00028f94;" if (parenthesized_expression "(plVar49 == (lang_statement_union *)0x0)" ( (binary_expression "plVar49 == (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_00028f94;" goto statement_identifier ;)) })) (if_statement "if ((plVar49->header).type != lang_insert_statement_enum) {\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }" if (parenthesized_expression "((plVar49->header).type != lang_insert_statement_enum)" ( (binary_expression "(plVar49->header).type != lang_insert_statement_enum" (field_expression "(plVar49->header).type" (parenthesized_expression "(plVar49->header)" ( (field_expression "plVar49->header" identifier -> field_identifier) )) . field_identifier) != identifier) )) (compound_statement "{\nLAB_00028f8a:\n      plVar58 = plVar60;\n      goto LAB_00028f8c;\n    }" { (labeled_statement "LAB_00028f8a:\n      plVar58 = plVar60;" statement_identifier : (expression_statement "plVar58 = plVar60;" (assignment_expression "plVar58 = plVar60" identifier = identifier) ;)) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (expression_statement "plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0);" (assignment_expression "plVar35 = lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0)" identifier = (call_expression "lang_output_section_statement_lookup((plVar49->wild_statement).filename,0,0)" identifier (argument_list "((plVar49->wild_statement).filename,0,0)" ( (field_expression "(plVar49->wild_statement).filename" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) , number_literal , number_literal )))) ;) (if_statement "if (plVar35 != (lang_output_section_statement_type *)0x0) {\n      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\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      if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }\n      if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }\n      pplVar36 = insert_os_after(plVar35);\n      plVar49 = ((lang_output_section_statement.head)->header).next;\n      ((lang_output_section_statement.head)->header).next = (((plVar67->header).next)->header).next;\n      plVar58 = *pplVar36;\n      (plVar67->header).next = plVar58;\n      if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\n      }\n      *pplVar36 = plVar49;\n      plVar53 = (lang_statement_union *)0x0;\n      plVar58 = plVar60;\n      plVar34 = lang_output_section_statement.head;\n      goto LAB_00028f8c;\n    }" { (if_statement "if ((plVar49->wild_statement).filenames_sorted != 0) {\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }" if (parenthesized_expression "((plVar49->wild_statement).filenames_sorted != 0)" ( (binary_expression "(plVar49->wild_statement).filenames_sorted != 0" (field_expression "(plVar49->wild_statement).filenames_sorted" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n        do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);\n      }" { (do_statement "do {\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        } while (plVar35->constraint < 0);" do (compound_statement "{\n          plVar35 = plVar35->prev;\n          if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;\n        }" { (expression_statement "plVar35 = plVar35->prev;" (assignment_expression "plVar35 = plVar35->prev" identifier = (field_expression "plVar35->prev" identifier -> field_identifier)) ;) (if_statement "if (plVar35 == (lang_output_section_statement_struct *)0x0) goto LAB_00029066;" if (parenthesized_expression "(plVar35 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar35 == (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_00029066;" goto statement_identifier ;)) }) while (parenthesized_expression "(plVar35->constraint < 0)" ( (binary_expression "plVar35->constraint < 0" (field_expression "plVar35->constraint" identifier -> field_identifier) < number_literal) )) ;) })) (if_statement "if (plVar53 != (lang_statement_union *)0x0) {\n        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }" if (parenthesized_expression "(plVar53 != (lang_statement_union *)0x0)" ( (binary_expression "plVar53 != (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        plVar51 = (plVar60->output_section_statement).prev;\n        plVar13 = (plVar53->output_section_statement).next;\n        plVar51->next = plVar13;\n        if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }\n        (plVar60->output_section_statement).prev = plVar35;\n        paVar52 = (asection *)0x0;\n        paVar47 = (asection *)0x0;\n        plVar35->next = (lang_output_section_statement_struct *)plVar60;\n        do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));\n        plVar60 = (lang_statement_union *)0x0;\n        if (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }\n      }" { (expression_statement "plVar51 = (plVar60->output_section_statement).prev;" (assignment_expression "plVar51 = (plVar60->output_section_statement).prev" identifier = (field_expression "(plVar60->output_section_statement).prev" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar13 = (plVar53->output_section_statement).next;" (assignment_expression "plVar13 = (plVar53->output_section_statement).next" identifier = (field_expression "(plVar53->output_section_statement).next" (parenthesized_expression "(plVar53->output_section_statement)" ( (field_expression "plVar53->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar51->next = plVar13;" (assignment_expression "plVar51->next = plVar13" (field_expression "plVar51->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (plVar13 == (lang_output_section_statement_struct *)0x0) {\n          lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }\n        else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }" if (parenthesized_expression "(plVar13 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar13 == (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 **)&plVar51->next;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;\nLAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;\n        }" { (expression_statement "lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next;" (assignment_expression "lang_output_section_statement.tail = (lang_statement_union **)&plVar51->next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&plVar51->next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&plVar51->next" & (field_expression "plVar51->next" identifier -> field_identifier)))) ;) (expression_statement "(plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;" (assignment_expression "(plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next" (field_expression "(plVar53->wild_statement).section_list" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)plVar35->next" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar35->next" identifier -> field_identifier))) ;) (expression_statement "plVar51 = plVar35->next;" (assignment_expression "plVar51 = plVar35->next" identifier = (field_expression "plVar35->next" identifier -> field_identifier)) ;) (if_statement "if (plVar51 == (lang_output_section_statement_struct *)0x0) goto LAB_00029bab;" if (parenthesized_expression "(plVar51 == (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar51 == (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_00029bab;" goto statement_identifier ;)) (labeled_statement "LAB_0002996d:\n          plVar51->prev = (lang_output_section_statement_struct *)plVar53;" statement_identifier : (expression_statement "plVar51->prev = (lang_output_section_statement_struct *)plVar53;" (assignment_expression "plVar51->prev = (lang_output_section_statement_struct *)plVar53" (field_expression "plVar51->prev" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar53" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }) (else_clause "else {\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }" else (compound_statement "{\n          plVar13->prev = plVar51;\n          (plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;\n          plVar51 = plVar35->next;\n          if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;\nLAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;\n        }" { (expression_statement "plVar13->prev = plVar51;" (assignment_expression "plVar13->prev = plVar51" (field_expression "plVar13->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "(plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next;" (assignment_expression "(plVar53->wild_statement).section_list = (wildcard_list *)plVar35->next" (field_expression "(plVar53->wild_statement).section_list" (parenthesized_expression "(plVar53->wild_statement)" ( (field_expression "plVar53->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(wildcard_list *)plVar35->next" ( (type_descriptor "wildcard_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar35->next" identifier -> field_identifier))) ;) (expression_statement "plVar51 = plVar35->next;" (assignment_expression "plVar51 = plVar35->next" identifier = (field_expression "plVar35->next" identifier -> field_identifier)) ;) (if_statement "if (plVar51 != (lang_output_section_statement_struct *)0x0) goto LAB_0002996d;" if (parenthesized_expression "(plVar51 != (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar51 != (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_0002996d;" goto statement_identifier ;)) (labeled_statement "LAB_00029bab:\n          lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;" statement_identifier : (expression_statement "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next;" (assignment_expression "lang_output_section_statement.tail =\n               (lang_statement_union **)&(plVar53->output_section_statement).next" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)&(plVar53->output_section_statement).next" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(plVar53->output_section_statement).next" & (field_expression "(plVar53->output_section_statement).next" (parenthesized_expression "(plVar53->output_section_statement)" ( (field_expression "plVar53->output_section_statement" identifier -> field_identifier) )) . field_identifier)))) ;)) }))) (expression_statement "(plVar60->output_section_statement).prev = plVar35;" (assignment_expression "(plVar60->output_section_statement).prev = plVar35" (field_expression "(plVar60->output_section_statement).prev" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "paVar52 = (asection *)0x0;" (assignment_expression "paVar52 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "paVar47 = (asection *)0x0;" (assignment_expression "paVar47 = (asection *)0x0" identifier = (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar35->next = (lang_output_section_statement_struct *)plVar60;" (assignment_expression "plVar35->next = (lang_output_section_statement_struct *)plVar60" (field_expression "plVar35->next" identifier -> field_identifier) = (cast_expression "(lang_output_section_statement_struct *)plVar60" ( (type_descriptor "lang_output_section_statement_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        } while ((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0));" do (compound_statement "{\n          (plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;\n          paVar56 = (plVar60->output_section_statement).bfd_section;\n          if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }\n        }" { (expression_statement "(plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint;" (assignment_expression "(plVar60->output_section_statement).constraint =\n               -2 - (plVar60->output_section_statement).constraint" (field_expression "(plVar60->output_section_statement).constraint" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier) = (binary_expression "-2 - (plVar60->output_section_statement).constraint" number_literal - (field_expression "(plVar60->output_section_statement).constraint" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "paVar56 = (plVar60->output_section_statement).bfd_section;" (assignment_expression "paVar56 = (plVar60->output_section_statement).bfd_section" identifier = (field_expression "(plVar60->output_section_statement).bfd_section" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)) {\n            paVar47 = paVar56;\n          }" if (parenthesized_expression "(((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0))" ( (binary_expression "((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)) &&\n             (paVar52 = paVar56, paVar47 == (asection *)0x0)" (parenthesized_expression "((paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0))" ( (binary_expression "(paVar56 != (asection *)0x0) && (paVar56->owner != (bfd *)0x0)" (parenthesized_expression "(paVar56 != (asection *)0x0)" ( (binary_expression "paVar56 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(paVar56->owner != (bfd *)0x0)" ( (binary_expression "paVar56->owner != (bfd *)0x0" (field_expression "paVar56->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(paVar52 = paVar56, paVar47 == (asection *)0x0)" ( (comma_expression "paVar52 = paVar56, paVar47 == (asection *)0x0" (assignment_expression "paVar52 = paVar56" identifier = identifier) , (binary_expression "paVar47 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            paVar47 = paVar56;\n          }" { (expression_statement "paVar47 = paVar56;" (assignment_expression "paVar47 = paVar56" identifier = identifier) ;) })) }) while (parenthesized_expression "((plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0))" ( (binary_expression "(plVar53 != plVar60) &&\n                (plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0)" (parenthesized_expression "(plVar53 != plVar60)" ( (binary_expression "plVar53 != plVar60" identifier != identifier) )) && (parenthesized_expression "(plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0)" ( (comma_expression "plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list,\n                plVar60 != (lang_statement_union *)0x0" (assignment_expression "plVar60 = (lang_statement_union *)(plVar60->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar60->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar60->wild_statement).section_list" (parenthesized_expression "(plVar60->wild_statement)" ( (field_expression "plVar60->wild_statement" identifier -> field_identifier) )) . field_identifier))) , (binary_expression "plVar60 != (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 "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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 (paVar52 != (asection *)0x0) {\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }" if (parenthesized_expression "(paVar52 != (asection *)0x0)" ( (binary_expression "paVar52 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          paVar56 = plVar35->bfd_section;\n          if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }\n        }" { (expression_statement "paVar56 = plVar35->bfd_section;" (assignment_expression "paVar56 = plVar35->bfd_section" identifier = (field_expression "plVar35->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (paVar56 == (asection *)0x0) {\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }" if (parenthesized_expression "(paVar56 == (asection *)0x0)" ( (binary_expression "paVar56 == (asection *)0x0" identifier == (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            plVar60 = (lang_statement_union *)plVar35->prev;\n            if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }\n          }" { (expression_statement "plVar60 = (lang_statement_union *)plVar35->prev;" (assignment_expression "plVar60 = (lang_statement_union *)plVar35->prev" identifier = (cast_expression "(lang_statement_union *)plVar35->prev" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar35->prev" identifier -> field_identifier))) ;) (if_statement "if (plVar60 != (lang_statement_union *)0x0) {\n              do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }" if (parenthesized_expression "(plVar60 != (lang_statement_union *)0x0)" ( (binary_expression "plVar60 != (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 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);\n              plVar60 = (lang_statement_union *)0x0;\n            }" { (do_statement "do {\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              } while (plVar60 != (lang_statement_union *)0x0);" do (compound_statement "{\n                if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;\n                plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;\n              }" { (if_statement "if (((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))\n                goto LAB_000299ca;" if (parenthesized_expression "(((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0))" ( (binary_expression "((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)) && (paVar56->owner != (bfd *)0x0)" (parenthesized_expression "((-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0))" ( (binary_expression "(-1 < (plVar60->output_section_statement).constraint) &&\n                    (paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)" (parenthesized_expression "(-1 < (plVar60->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar60->output_section_statement).constraint" number_literal < (field_expression "(plVar60->output_section_statement).constraint" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "(paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0)" ( (comma_expression "paVar56 = (plVar60->output_section_statement).bfd_section,\n                    paVar56 != (asection *)0x0" (assignment_expression "paVar56 = (plVar60->output_section_statement).bfd_section" identifier = (field_expression "(plVar60->output_section_statement).bfd_section" (parenthesized_expression "(plVar60->output_section_statement)" ( (field_expression "plVar60->output_section_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "paVar56 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(paVar56->owner != (bfd *)0x0)" ( (binary_expression "paVar56->owner != (bfd *)0x0" (field_expression "paVar56->owner" identifier -> field_identifier) != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (goto_statement "goto LAB_000299ca;" goto statement_identifier ;)) (expression_statement "plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections;" (assignment_expression "plVar60 = (lang_statement_union *)(plVar60->wild_statement).keep_sections" identifier = (cast_expression "(lang_statement_union *)(plVar60->wild_statement).keep_sections" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar60->wild_statement).keep_sections" (parenthesized_expression "(plVar60->wild_statement)" ( (field_expression "plVar60->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) }) while (parenthesized_expression "(plVar60 != (lang_statement_union *)0x0)" ( (binary_expression "plVar60 != (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 "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }" else (compound_statement "{\nLAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;\n            if (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }\n          }" { (labeled_statement "LAB_000299ca:\n            plVar60 = (lang_statement_union *)0x0;" statement_identifier : (expression_statement "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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 (paVar56 != paVar52) {\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }" if (parenthesized_expression "(paVar56 != paVar52)" ( (binary_expression "paVar56 != paVar52" identifier != identifier) )) (compound_statement "{\n              pbVar37 = paVar47->prev;\n              pbVar54 = paVar52->next;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }\n              if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }\n              pbVar37 = paVar56->next;\n              paVar52->next = pbVar37;\n              if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }\n              paVar47->prev = paVar56;\n              plVar60 = (lang_statement_union *)0x0;\n              paVar56->next = paVar47;\n            }" { (expression_statement "pbVar37 = paVar47->prev;" (assignment_expression "pbVar37 = paVar47->prev" identifier = (field_expression "paVar47->prev" identifier -> field_identifier)) ;) (expression_statement "pbVar54 = paVar52->next;" (assignment_expression "pbVar54 = paVar52->next" identifier = (field_expression "paVar52->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->sections = pbVar54;\n              }\n              else {\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }" if (parenthesized_expression "(pbVar37 == (bfd_section *)0x0)" ( (binary_expression "pbVar37 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (link_info.output_bfd)->sections = pbVar54;\n              }" { (expression_statement "(link_info.output_bfd)->sections = pbVar54;" (assignment_expression "(link_info.output_bfd)->sections = pbVar54" (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                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }" else (compound_statement "{\n                pbVar37->next = pbVar54;\n                pbVar54 = paVar52->next;\n              }" { (expression_statement "pbVar37->next = pbVar54;" (assignment_expression "pbVar37->next = pbVar54" (field_expression "pbVar37->next" identifier -> field_identifier) = identifier) ;) (expression_statement "pbVar54 = paVar52->next;" (assignment_expression "pbVar54 = paVar52->next" identifier = (field_expression "paVar52->next" identifier -> field_identifier)) ;) }))) (if_statement "if (pbVar54 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = pbVar37;\n              }\n              else {\n                pbVar54->prev = pbVar37;\n              }" if (parenthesized_expression "(pbVar54 == (bfd_section *)0x0)" ( (binary_expression "pbVar54 == (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 = pbVar37;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = pbVar37;" (assignment_expression "(link_info.output_bfd)->section_last = pbVar37" (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                pbVar54->prev = pbVar37;\n              }" else (compound_statement "{\n                pbVar54->prev = pbVar37;\n              }" { (expression_statement "pbVar54->prev = pbVar37;" (assignment_expression "pbVar54->prev = pbVar37" (field_expression "pbVar54->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "pbVar37 = paVar56->next;" (assignment_expression "pbVar37 = paVar56->next" identifier = (field_expression "paVar56->next" identifier -> field_identifier)) ;) (expression_statement "paVar52->next = pbVar37;" (assignment_expression "paVar52->next = pbVar37" (field_expression "paVar52->next" identifier -> field_identifier) = identifier) ;) (if_statement "if (pbVar37 == (bfd_section *)0x0) {\n                (link_info.output_bfd)->section_last = paVar52;\n              }\n              else {\n                pbVar37->prev = paVar52;\n              }" if (parenthesized_expression "(pbVar37 == (bfd_section *)0x0)" ( (binary_expression "pbVar37 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (link_info.output_bfd)->section_last = paVar52;\n              }" { (expression_statement "(link_info.output_bfd)->section_last = paVar52;" (assignment_expression "(link_info.output_bfd)->section_last = paVar52" (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                pbVar37->prev = paVar52;\n              }" else (compound_statement "{\n                pbVar37->prev = paVar52;\n              }" { (expression_statement "pbVar37->prev = paVar52;" (assignment_expression "pbVar37->prev = paVar52" (field_expression "pbVar37->prev" identifier -> field_identifier) = identifier) ;) }))) (expression_statement "paVar47->prev = paVar56;" (assignment_expression "paVar47->prev = paVar56" (field_expression "paVar47->prev" identifier -> field_identifier) = identifier) ;) (expression_statement "plVar60 = (lang_statement_union *)0x0;" (assignment_expression "plVar60 = (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 "paVar56->next = paVar47;" (assignment_expression "paVar56->next = paVar47" (field_expression "paVar56->next" identifier -> field_identifier) = identifier) ;) })) }))) })) })) (expression_statement "pplVar36 = insert_os_after(plVar35);" (assignment_expression "pplVar36 = insert_os_after(plVar35)" identifier = (call_expression "insert_os_after(plVar35)" identifier (argument_list "(plVar35)" ( identifier )))) ;) (expression_statement "plVar49 = ((lang_output_section_statement.head)->header).next;" (assignment_expression "plVar49 = ((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 = (((plVar67->header).next)->header).next;" (assignment_expression "((lang_output_section_statement.head)->header).next = (((plVar67->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 "(((plVar67->header).next)->header).next" (parenthesized_expression "(((plVar67->header).next)->header)" ( (field_expression "((plVar67->header).next)->header" (parenthesized_expression "((plVar67->header).next)" ( (field_expression "(plVar67->header).next" (parenthesized_expression "(plVar67->header)" ( (field_expression "plVar67->header" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "plVar58 = *pplVar36;" (assignment_expression "plVar58 = *pplVar36" identifier = (pointer_expression "*pplVar36" * identifier)) ;) (expression_statement "(plVar67->header).next = plVar58;" (assignment_expression "(plVar67->header).next = plVar58" (field_expression "(plVar67->header).next" (parenthesized_expression "(plVar67->header)" ( (field_expression "plVar67->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (plVar58 == (lang_statement_union *)0x0) {\n        statement_list.tail = (lang_statement_union **)plVar67;\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        statement_list.tail = (lang_statement_union **)plVar67;\n      }" { (expression_statement "statement_list.tail = (lang_statement_union **)plVar67;" (assignment_expression "statement_list.tail = (lang_statement_union **)plVar67" (field_expression "statement_list.tail" identifier . field_identifier) = (cast_expression "(lang_statement_union **)plVar67" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (expression_statement "*pplVar36 = plVar49;" (assignment_expression "*pplVar36 = plVar49" (pointer_expression "*pplVar36" * identifier) = identifier) ;) (expression_statement "plVar53 = (lang_statement_union *)0x0;" (assignment_expression "plVar53 = (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 = plVar60;" (assignment_expression "plVar58 = plVar60" identifier = identifier) ;) (expression_statement "plVar34 = lang_output_section_statement.head;" (assignment_expression "plVar34 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ;) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (labeled_statement "LAB_00029066:\n    pcVar26 = (plVar49->wild_statement).filename;" statement_identifier : (expression_statement "pcVar26 = (plVar49->wild_statement).filename;" (assignment_expression "pcVar26 = (plVar49->wild_statement).filename" identifier = (field_expression "(plVar49->wild_statement).filename" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar30 = (char *)dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) }))) (expression_statement "pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180);" (assignment_expression "pbVar37 = (bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180)" identifier = (cast_expression "(bfd_section *)(PTR__bfd_std_section_00092fb4 + 0x180)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00092fb4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal) )))) ;) (for_statement "for (plVar49 = file_chain.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (plVar49->wild_statement).children.head) {\n    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;\njoined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "plVar49 = file_chain.head" identifier = (field_expression "file_chain.head" identifier . field_identifier)) ; (binary_expression "plVar49 != (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 "plVar49 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ) (compound_statement "{\n    pbVar54 = ((plVar49->input_statement).the_bfd)->sections;\njoined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "pbVar54 = ((plVar49->input_statement).the_bfd)->sections;" (assignment_expression "pbVar54 = ((plVar49->input_statement).the_bfd)->sections" identifier = (field_expression "((plVar49->input_statement).the_bfd)->sections" (parenthesized_expression "((plVar49->input_statement).the_bfd)" ( (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "joined_r0x000290b4:\n    if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (pbVar54 != (bfd_section *)0x0) {\n      do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(pbVar54 != (bfd_section *)0x0)" ( (binary_expression "pbVar54 != (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 (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }\n        pbVar54 = pbVar54->next;\n        if (pbVar54 == (bfd_section *)0x0) break;\n      }" { (if_statement "if (pbVar54->output_section == (bfd_section *)0x0) {\n          if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }" if (parenthesized_expression "(pbVar54->output_section == (bfd_section *)0x0)" ( (binary_expression "pbVar54->output_section == (bfd_section *)0x0" (field_expression "pbVar54->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)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;\n          bVar28 = lang_discard_section_p((asection *)pbVar54->flags);\n          bVar73 = false;\n          bVar74 = bVar28 == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }\n        }" { (if_statement "if (((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)\n          goto code_r0x000290dc;" if (parenthesized_expression "(((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0)" ( (binary_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10) != 0" (parenthesized_expression "((uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10)" ( (binary_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler & 0x10" (field_expression "(uint)(plVar49->wild_statement).walk_wild_section_handler" (call_expression "(uint)(plVar49->wild_statement)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) ))) . field_identifier) & number_literal) )) != number_literal) )) (goto_statement "goto code_r0x000290dc;" goto statement_identifier ;)) (expression_statement "bVar28 = lang_discard_section_p((asection *)pbVar54->flags);" (assignment_expression "bVar28 = lang_discard_section_p((asection *)pbVar54->flags)" identifier = (call_expression "lang_discard_section_p((asection *)pbVar54->flags)" identifier (argument_list "((asection *)pbVar54->flags)" ( (cast_expression "(asection *)pbVar54->flags" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar54->flags" identifier -> field_identifier)) )))) ;) (expression_statement "bVar73 = false;" (assignment_expression "bVar73 = false" identifier = false) ;) (expression_statement "bVar74 = bVar28 == 0;" (assignment_expression "bVar74 = bVar28 == 0" identifier = (binary_expression "bVar28 == 0" identifier == number_literal)) ;) (if_statement "if (bVar74) {\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }\n          else {\n            pbVar54->output_section = pbVar37;\n          }" if (parenthesized_expression "(bVar74)" ( identifier )) (compound_statement "{\n            pbVar9 = (byte *)pbVar54->name;\n            iVar25 = 7;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)"COMMON";\n            do {\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }\n          }" { (expression_statement "pbVar9 = (byte *)pbVar54->name;" (assignment_expression "pbVar9 = (byte *)pbVar54->name" identifier = (cast_expression "(byte *)pbVar54->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pbVar54->name" identifier -> field_identifier))) ;) (expression_statement "iVar25 = 7;" (assignment_expression "iVar25 = 7" identifier = number_literal) ;) (expression_statement "pbVar42 = pbVar9;" (assignment_expression "pbVar42 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar68 = (byte *)"COMMON";" (assignment_expression "pbVar68 = (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 (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);" do (compound_statement "{\n              if (iVar25 == 0) break;\n              iVar25 = iVar25 + -1;\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            }" { (if_statement "if (iVar25 == 0) break;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar25 = iVar25 + -1;" (assignment_expression "iVar25 = iVar25 + -1" identifier = (binary_expression "iVar25 + -1" identifier + number_literal)) ;) (expression_statement "bVar73 = *pbVar42 < *pbVar68;" (assignment_expression "bVar73 = *pbVar42 < *pbVar68" identifier = (binary_expression "*pbVar42 < *pbVar68" (pointer_expression "*pbVar42" * identifier) < (pointer_expression "*pbVar68" * identifier))) ;) (expression_statement "bVar74 = *pbVar42 == *pbVar68;" (assignment_expression "bVar74 = *pbVar42 == *pbVar68" identifier = (binary_expression "*pbVar42 == *pbVar68" (pointer_expression "*pbVar42" * identifier) == (pointer_expression "*pbVar68" * identifier))) ;) (expression_statement "pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;" (assignment_expression "pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1" identifier = (binary_expression "pbVar42 + (uint)bVar75 * -2 + 1" (binary_expression "pbVar42 + (uint)bVar75 * -2" identifier + (binary_expression "(uint)bVar75 * -2" (cast_expression "(uint)bVar75" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;" (assignment_expression "pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1" identifier = (binary_expression "pbVar68 + (uint)bVar75 * -2 + 1" (binary_expression "pbVar68 + (uint)bVar75 * -2" identifier + (binary_expression "(uint)bVar75 * -2" (cast_expression "(uint)bVar75" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar74)" ( identifier )) ;) (if_statement "if ((!bVar73 && !bVar74) == bVar73) {\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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);\n              }\n            }\n            else if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }" if (parenthesized_expression "((!bVar73 && !bVar74) == bVar73)" ( (binary_expression "(!bVar73 && !bVar74) == bVar73" (parenthesized_expression "(!bVar73 && !bVar74)" ( (binary_expression "!bVar73 && !bVar74" (unary_expression "!bVar73" ! identifier) && (unary_expression "!bVar74" ! 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,pbVar54,(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,pbVar54,(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,pbVar54,(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,pbVar54,(flag_info *)0x0,\n                                 default_common_section);" (call_expression "lang_add_section(&default_common_section->children,pbVar54,(flag_info *)0x0,\n                                 default_common_section)" identifier (argument_list "(&default_common_section->children,pbVar54,(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              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }" else (if_statement "if (config.orphan_handling == orphan_handling_discard) {\n              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }\n            else {\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\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              plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);\n              if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }\n              lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n            }" { (expression_statement "plVar38 = lang_output_section_statement_lookup("/DISCARD/",0,1);" (assignment_expression "plVar38 = 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 ((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }" if (parenthesized_expression "((plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0))))" ( (binary_expression "(plVar38->addr_tree == (etree_union *)0x0) &&\n                 (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))" (parenthesized_expression "(plVar38->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar38->addr_tree == (etree_union *)0x0" (field_expression "plVar38->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 || ((pbVar54->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar54->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 "((pbVar54->flags & 3) == 0)" ( (binary_expression "(pbVar54->flags & 3) == 0" (parenthesized_expression "(pbVar54->flags & 3)" ( (binary_expression "pbVar54->flags & 3" (field_expression "pbVar54->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                peVar43 = exp_intop(0);\n                plVar38->addr_tree = peVar43;\n              }" { (expression_statement "peVar43 = exp_intop(0);" (assignment_expression "peVar43 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar38->addr_tree = peVar43;" (assignment_expression "plVar38->addr_tree = peVar43" (field_expression "plVar38->addr_tree" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);" (call_expression "lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38)" identifier (argument_list "(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38)" ( (pointer_expression "&plVar38->children" & (field_expression "plVar38->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 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }" else (compound_statement "{\n              if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }\n              if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }\n              plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);\n              if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }\n              if (config.orphan_handling == orphan_handling_warn) {\n                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }\n            }" { (if_statement "if (config.orphan_handling == orphan_handling_error) {\n                pbVar6 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,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 = pbVar54->owner;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);\n                einfo(pcVar26,pbVar54,pbVar6);\n              }" { (expression_statement "pbVar6 = pbVar54->owner;" (assignment_expression "pbVar6 = pbVar54->owner" identifier = (field_expression "pbVar54->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"\n                                            ,5);" (assignment_expression "pcVar26 = (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(pcVar26,pbVar54,pbVar6);" (call_expression "einfo(pcVar26,pbVar54,pbVar6)" identifier (argument_list "(pcVar26,pbVar54,pbVar6)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)) {\n                iVar25 = 0;\n              }\n              else {\n                iVar25 = 0x17e;\n              }" if (parenthesized_expression "((config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0))" ( (binary_expression "(config.unique_orphan_sections == 0) &&\n                 (bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 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 "(bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0)" ( (comma_expression "bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0),\n                 bVar28 == 0" (assignment_expression "bVar28 = unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0)" identifier = (call_expression "unique_section_p(pbVar54,(lang_output_section_statement_type *)0x0)" identifier (argument_list "(pbVar54,(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 "bVar28 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                iVar25 = 0;\n              }" { (expression_statement "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                iVar25 = 0x17e;\n              }" else (compound_statement "{\n                iVar25 = 0x17e;\n              }" { (expression_statement "iVar25 = 0x17e;" (assignment_expression "iVar25 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25);" (assignment_expression "plVar38 = ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25)" identifier = (call_expression "ldemul_place_orphan(pbVar54,(char *)pbVar9,iVar25)" identifier (argument_list "(pbVar54,(char *)pbVar9,iVar25)" ( identifier , (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (plVar38 == (lang_output_section_statement_type *)0x0) {\n                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }" if (parenthesized_expression "(plVar38 == (lang_output_section_statement_type *)0x0)" ( (binary_expression "plVar38 == (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                plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);\n                if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }\n                lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);\n              }" { (expression_statement "plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1);" (assignment_expression "plVar38 = lang_output_section_statement_lookup((char *)pbVar9,iVar25,1)" identifier = (call_expression "lang_output_section_statement_lookup((char *)pbVar9,iVar25,1)" identifier (argument_list "((char *)pbVar9,iVar25,1)" ( (cast_expression "(char *)pbVar9" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal )))) ;) (if_statement "if ((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))) {\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }" if (parenthesized_expression "((plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0))))" ( (binary_expression "(plVar38->addr_tree == (etree_union *)0x0) &&\n                   (((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0)))" (parenthesized_expression "(plVar38->addr_tree == (etree_union *)0x0)" ( (binary_expression "plVar38->addr_tree == (etree_union *)0x0" (field_expression "plVar38->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 || ((pbVar54->flags & 3) == 0)))" ( (parenthesized_expression "((link_info._0_1_ & 3) == 2 || ((pbVar54->flags & 3) == 0))" ( (binary_expression "(link_info._0_1_ & 3) == 2 || ((pbVar54->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 "((pbVar54->flags & 3) == 0)" ( (binary_expression "(pbVar54->flags & 3) == 0" (parenthesized_expression "(pbVar54->flags & 3)" ( (binary_expression "pbVar54->flags & 3" (field_expression "pbVar54->flags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) ))) )) (compound_statement "{\n                  peVar43 = exp_intop(0);\n                  plVar38->addr_tree = peVar43;\n                }" { (expression_statement "peVar43 = exp_intop(0);" (assignment_expression "peVar43 = exp_intop(0)" identifier = (call_expression "exp_intop(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "plVar38->addr_tree = peVar43;" (assignment_expression "plVar38->addr_tree = peVar43" (field_expression "plVar38->addr_tree" identifier -> field_identifier) = identifier) ;) })) (expression_statement "lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38);" (call_expression "lang_add_section(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38)" identifier (argument_list "(&plVar38->children,pbVar54,(flag_info *)0x0,plVar38)" ( (pointer_expression "&plVar38->children" & (field_expression "plVar38->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                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\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                pcVar26 = plVar38->name;\n                pbVar6 = pbVar54->owner;\n                pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);\n                einfo(pcVar30,pbVar54,pbVar6,pcVar26);\n              }" { (expression_statement "pcVar26 = plVar38->name;" (assignment_expression "pcVar26 = plVar38->name" identifier = (field_expression "plVar38->name" identifier -> field_identifier)) ;) (expression_statement "pbVar6 = pbVar54->owner;" (assignment_expression "pbVar6 = pbVar54->owner" identifier = (field_expression "pbVar54->owner" identifier -> field_identifier)) ;) (expression_statement "pcVar30 = (char *)dcgettext(0,\n                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                            ,5);" (assignment_expression "pcVar30 = (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(pcVar30,pbVar54,pbVar6,pcVar26);" (call_expression "einfo(pcVar30,pbVar54,pbVar6,pcVar26)" identifier (argument_list "(pcVar30,pbVar54,pbVar6,pcVar26)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            pbVar54->output_section = pbVar37;\n          }" else (compound_statement "{\n            pbVar54->output_section = pbVar37;\n          }" { (expression_statement "pbVar54->output_section = pbVar37;" (assignment_expression "pbVar54->output_section = pbVar37" (field_expression "pbVar54->output_section" identifier -> field_identifier) = identifier) ;) }))) })) (expression_statement "pbVar54 = pbVar54->next;" (assignment_expression "pbVar54 = pbVar54->next" identifier = (field_expression "pbVar54->next" identifier -> field_identifier)) ;) (if_statement "if (pbVar54 == (bfd_section *)0x0) break;" if (parenthesized_expression "(pbVar54 == (bfd_section *)0x0)" ( (binary_expression "pbVar54 == (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 "bVar44 = link_info._0_1_ & 3;" (assignment_expression "bVar44 = 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 "ppbVar62 = start_stop_syms;" (assignment_expression "ppbVar62 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar49 = lang_output_section_statement.head;" (assignment_expression "plVar49 = 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 (bVar44 != 2) {\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }\n  }" if (parenthesized_expression "(bVar44 != 2)" ( (binary_expression "bVar44 != 2" identifier != number_literal) )) (compound_statement "{\n    (*(link_info.output_bfd)->xvec->_bfd_merge_sections)(link_info.output_bfd,&link_info);\n    iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");\n    if (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = 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 "iVar25 = bfd_get_section_by_name(link_info.output_bfd,".text");" (assignment_expression "iVar25 = 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 (iVar25 == 0) {\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }\n    else {\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar44 = link_info._0_1_ & 3;\n      ppbVar62 = start_stop_syms;\n      plVar49 = lang_output_section_statement.head;\n      pbVar6 = link_info.output_bfd;\n    }" { (expression_statement "bVar44 = link_info._0_1_ & 3;" (assignment_expression "bVar44 = 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 "ppbVar62 = start_stop_syms;" (assignment_expression "ppbVar62 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar49 = lang_output_section_statement.head;" (assignment_expression "plVar49 = 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      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" else (compound_statement "{\n      bVar44 = link_info._0_1_ & 3;\n      if (config.text_read_only == 0) {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n    }" { (expression_statement "bVar44 = link_info._0_1_ & 3;" (assignment_expression "bVar44 = 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 *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }\n      else {\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = 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 *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "ppbVar62 = start_stop_syms;" (assignment_expression "ppbVar62 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar49 = lang_output_section_statement.head;" (assignment_expression "plVar49 = 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 *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" else (compound_statement "{\n        *(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;\n        ppbVar62 = start_stop_syms;\n        plVar49 = lang_output_section_statement.head;\n        pbVar6 = link_info.output_bfd;\n      }" { (expression_statement "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar25 + 0x14) = *(uint *)(iVar25 + 0x14) | 8" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar25 + 0x14) | 8" (pointer_expression "*(uint *)(iVar25 + 0x14)" * (cast_expression "(uint *)(iVar25 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x14)" ( (binary_expression "iVar25 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "ppbVar62 = start_stop_syms;" (assignment_expression "ppbVar62 = start_stop_syms" identifier = identifier) ;) (expression_statement "plVar49 = lang_output_section_statement.head;" (assignment_expression "plVar49 = 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 = ppbVar62, link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    plVar35 = (plVar49->output_section_statement).prev;\n    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }\n    ppbVar62 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }" for ( ; (comma_expression "start_stop_syms = ppbVar62, link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0" (assignment_expression "start_stop_syms = ppbVar62" identifier = identifier) , (comma_expression "link_info.output_bfd = pbVar6,\n      plVar49 != (lang_statement_union *)0x0" (assignment_expression "link_info.output_bfd = pbVar6" (field_expression "link_info.output_bfd" identifier . field_identifier) = identifier) , (binary_expression "plVar49 != (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 "plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar49->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).section_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    plVar35 = (plVar49->output_section_statement).prev;\n    if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }\n    ppbVar62 = start_stop_syms;\n    pbVar6 = link_info.output_bfd;\n  }" { (expression_statement "plVar35 = (plVar49->output_section_statement).prev;" (assignment_expression "plVar35 = (plVar49->output_section_statement).prev" identifier = (field_expression "(plVar49->output_section_statement).prev" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )) {\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }" if (parenthesized_expression "((((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       ))" ( (binary_expression "(((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)) &&\n       (((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )" (parenthesized_expression "(((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0))" ( (binary_expression "((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))\n        && ((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)" (parenthesized_expression "((plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0))" ( (binary_expression "(plVar35 != (lang_output_section_statement_struct *)0x0) &&\n         ((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" (parenthesized_expression "(plVar35 != (lang_output_section_statement_struct *)0x0)" ( (binary_expression "plVar35 != (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)) )) && (parenthesized_expression "((plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0)" ( (binary_expression "(plVar49->wild_statement).walk_wild_section_handler == (walk_wild_section_handler_t)0x0" (field_expression "(plVar49->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->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 "((plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0)" ( (binary_expression "(plVar49->wild_statement).handler_data[2] == (wildcard_list *)0x0" (subscript_expression "(plVar49->wild_statement).handler_data[2]" (field_expression "(plVar49->wild_statement).handler_data" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->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 "(((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))\n       )" ( (parenthesized_expression "((plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region))" ( (binary_expression "(plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0 &&\n        ((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region)" (binary_expression "(plVar49->wild_statement).handler_data[1] == (wildcard_list *)0x0" (subscript_expression "(plVar49->wild_statement).handler_data[1]" (field_expression "(plVar49->wild_statement).handler_data" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->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 "((lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region)" ( (binary_expression "(lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list == plVar35->region" (cast_expression "(lang_memory_region_type *)(plVar49->wild_statement).exclude_name_list" ( (type_descriptor "lang_memory_region_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).exclude_name_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier)) == (field_expression "plVar35->region" identifier -> field_identifier)) ))) )) ))) )) (compound_statement "{\n      (plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;\n    }" { (expression_statement "(plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region;" (assignment_expression "(plVar49->wild_statement).walk_wild_section_handler =\n           (walk_wild_section_handler_t)plVar35->lma_region" (field_expression "(plVar49->wild_statement).walk_wild_section_handler" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(walk_wild_section_handler_t)plVar35->lma_region" ( (type_descriptor "walk_wild_section_handler_t" type_identifier) ) (field_expression "plVar35->lma_region" identifier -> field_identifier))) ;) })) (expression_statement "ppbVar62 = start_stop_syms;" (assignment_expression "ppbVar62 = 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    ppbVar50 = ppbVar62 + start_stop_count;\n    do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);\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    ppbVar50 = ppbVar62 + start_stop_count;\n    do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }" { (expression_statement "ppbVar50 = ppbVar62 + start_stop_count;" (assignment_expression "ppbVar50 = ppbVar62 + start_stop_count" identifier = (binary_expression "ppbVar62 + start_stop_count" identifier + identifier)) ;) (do_statement "do {\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    } while (ppbVar62 != ppbVar50);" do (compound_statement "{\n      while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }\n      ppbVar62 = ppbVar62 + 1;\n    }" { (while_statement "while (pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0) {\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }" while (parenthesized_expression "(pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0)" ( (comma_expression "pbVar10 = *ppbVar62, (pbVar10->field_0xd & 8) == 0" (assignment_expression "pbVar10 = *ppbVar62" identifier = (pointer_expression "*ppbVar62" * identifier)) , (binary_expression "(pbVar10->field_0xd & 8) == 0" (parenthesized_expression "(pbVar10->field_0xd & 8)" ( (binary_expression "pbVar10->field_0xd & 8" (field_expression "pbVar10->field_0xd" identifier -> field_identifier) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pbVar1 = (pbVar10->u).undef.abfd;\n        puVar72 = (undefined4 *)(pbVar1->section_htab).count;\n        if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }\n        ppbVar62 = ppbVar62 + 1;\n        if (ppbVar62 == ppbVar50) goto LAB_00029327;\n      }" { (expression_statement "pbVar1 = (pbVar10->u).undef.abfd;" (assignment_expression "pbVar1 = (pbVar10->u).undef.abfd" identifier = (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "puVar72 = (undefined4 *)(pbVar1->section_htab).count;" (assignment_expression "puVar72 = (undefined4 *)(pbVar1->section_htab).count" identifier = (cast_expression "(undefined4 *)(pbVar1->section_htab).count" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pbVar1->section_htab).count" (parenthesized_expression "(pbVar1->section_htab)" ( (field_expression "pbVar1->section_htab" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)) {\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }" if (parenthesized_expression "(((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0))" ( (binary_expression "((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)) ||\n           (iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)" (parenthesized_expression "((puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6))" ( (binary_expression "(puVar72 == (undefined4 *)0x0) || ((bfd *)puVar72[0x2b] != pbVar6)" (parenthesized_expression "(puVar72 == (undefined4 *)0x0)" ( (binary_expression "puVar72 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((bfd *)puVar72[0x2b] != pbVar6)" ( (binary_expression "(bfd *)puVar72[0x2b] != pbVar6" (cast_expression "(bfd *)puVar72[0x2b]" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar72[0x2b]" identifier [ number_literal ])) != identifier) ))) )) || (parenthesized_expression "(iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0)" ( (comma_expression "iVar25 = strcmp(pbVar1->filename,(char *)*puVar72), iVar25 != 0" (assignment_expression "iVar25 = strcmp(pbVar1->filename,(char *)*puVar72)" identifier = (call_expression "strcmp(pbVar1->filename,(char *)*puVar72)" identifier (argument_list "(pbVar1->filename,(char *)*puVar72)" ( (field_expression "pbVar1->filename" identifier -> field_identifier) , (cast_expression "(char *)*puVar72" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar72" * identifier)) )))) , (binary_expression "iVar25 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          pbVar10->field_0xc = 1;\n          (pbVar10->u).undef.abfd = (bfd *)0x0;\n          break;\n        }" { (expression_statement "pbVar10->field_0xc = 1;" (assignment_expression "pbVar10->field_0xc = 1" (field_expression "pbVar10->field_0xc" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pbVar10->u).undef.abfd = (bfd *)0x0;" (assignment_expression "(pbVar10->u).undef.abfd = (bfd *)0x0" (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->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 "ppbVar62 = ppbVar62 + 1;" (assignment_expression "ppbVar62 = ppbVar62 + 1" identifier = (binary_expression "ppbVar62 + 1" identifier + number_literal)) ;) (if_statement "if (ppbVar62 == ppbVar50) goto LAB_00029327;" if (parenthesized_expression "(ppbVar62 == ppbVar50)" ( (binary_expression "ppbVar62 == ppbVar50" identifier == identifier) )) (goto_statement "goto LAB_00029327;" goto statement_identifier ;)) })) (expression_statement "ppbVar62 = ppbVar62 + 1;" (assignment_expression "ppbVar62 = ppbVar62 + 1" identifier = (binary_expression "ppbVar62 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar62 != ppbVar50)" ( (binary_expression "ppbVar62 != ppbVar50" identifier != identifier) )) ;) })) (labeled_statement "LAB_00029327:\n  if (bVar44 != 2) {\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }" statement_identifier : (if_statement "if (bVar44 != 2) {\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }" if (parenthesized_expression "(bVar44 != 2)" ( (binary_expression "bVar44 != 2" identifier != number_literal) )) (compound_statement "{\n    for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }\n  }" { (for_statement "for (paVar47 = (link_info.output_bfd)->sections; paVar47 != (asection *)0x0;\n        paVar47 = paVar47->next) {\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }" for ( (assignment_expression "paVar47 = (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 "paVar47 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "paVar47 = paVar47->next" identifier = (field_expression "paVar47->next" identifier -> field_identifier)) ) (compound_statement "{\n      pcVar26 = paVar47->name;\n      sVar27 = strlen(pcVar26);\n      pcVar30 = (char *)xmalloc(sVar27 + 10);\n      sprintf(pcVar30,".startof.%s",pcVar26);\n      lang_define_start_stop(pcVar30,paVar47);\n      builtin_strncpy(pcVar30 + 1,".size",5);\n      lang_define_start_stop(pcVar30 + 1,paVar47);\n      free(pcVar30);\n    }" { (expression_statement "pcVar26 = paVar47->name;" (assignment_expression "pcVar26 = paVar47->name" identifier = (field_expression "paVar47->name" identifier -> field_identifier)) ;) (expression_statement "sVar27 = strlen(pcVar26);" (assignment_expression "sVar27 = strlen(pcVar26)" identifier = (call_expression "strlen(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier )))) ;) (expression_statement "pcVar30 = (char *)xmalloc(sVar27 + 10);" (assignment_expression "pcVar30 = (char *)xmalloc(sVar27 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar27 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar27 + 10)" identifier (argument_list "(sVar27 + 10)" ( (binary_expression "sVar27 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar30,".startof.%s",pcVar26);" (call_expression "sprintf(pcVar30,".startof.%s",pcVar26)" identifier (argument_list "(pcVar30,".startof.%s",pcVar26)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "lang_define_start_stop(pcVar30,paVar47);" (call_expression "lang_define_start_stop(pcVar30,paVar47)" identifier (argument_list "(pcVar30,paVar47)" ( identifier , identifier ))) ;) (expression_statement "builtin_strncpy(pcVar30 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar30 + 1,".size",5)" identifier (argument_list "(pcVar30 + 1,".size",5)" ( (binary_expression "pcVar30 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "lang_define_start_stop(pcVar30 + 1,paVar47);" (call_expression "lang_define_start_stop(pcVar30 + 1,paVar47)" identifier (argument_list "(pcVar30 + 1,paVar47)" ( (binary_expression "pcVar30 + 1" identifier + number_literal) , identifier ))) ;) (expression_statement "free(pcVar30);" (call_expression "free(pcVar30)" identifier (argument_list "(pcVar30)" ( identifier ))) ;) })) }))) (expression_statement "ldemul_before_allocation();" (call_expression "ldemul_before_allocation()" identifier (argument_list "()" ( ))) ;) (expression_statement "plVar55 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar55 = (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_64 = (void *)xmalloc(0x28);" (assignment_expression "local_64 = (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_6c = (lang_statement_union *)0x0;\n    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }\n    uVar66 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }\n    peVar43 = plVar8->at;\n    bVar76 = 0;\n    if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);\n    if (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\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_6c = (lang_statement_union *)0x0;\n    for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }\n    uVar66 = 0;\n    if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }\n    peVar43 = plVar8->at;\n    bVar76 = 0;\n    if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }\n    iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);\n    if (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }\n  }" { (expression_statement "local_6c = (lang_statement_union *)0x0;" (assignment_expression "local_6c = (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 (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n        plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }" for ( (assignment_expression "plVar49 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar49 != (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 "plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar49->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).section_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n      if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }\n    }" { (if_statement "if (-1 < (plVar49->output_section_statement).constraint) {\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }" if (parenthesized_expression "(-1 < (plVar49->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar49->output_section_statement).constraint" number_literal < (field_expression "(plVar49->output_section_statement).constraint" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) (compound_statement "{\n        plVar59 = (plVar49->output_section_statement).phdrs;\n        if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }\n      }" { (expression_statement "plVar59 = (plVar49->output_section_statement).phdrs;" (assignment_expression "plVar59 = (plVar49->output_section_statement).phdrs" identifier = (field_expression "(plVar49->output_section_statement).phdrs" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (plVar59 == (lang_output_section_phdr_list *)0x0) {\n          if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }\n        else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }" if (parenthesized_expression "(plVar59 == (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar59 == (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 ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }\n        }" { (if_statement "if ((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))) {\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }" if (parenthesized_expression "((((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3))))" ( (binary_expression "(((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)) &&\n             (((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))" (parenthesized_expression "(((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0))" ( (binary_expression "((plVar49->output_section_statement).sectype != noload_section) &&\n              ((plVar49->output_section_statement).bfd_section != (asection *)0x0)" (parenthesized_expression "((plVar49->output_section_statement).sectype != noload_section)" ( (binary_expression "(plVar49->output_section_statement).sectype != noload_section" (field_expression "(plVar49->output_section_statement).sectype" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier) != identifier) )) && (parenthesized_expression "((plVar49->output_section_statement).bfd_section != (asection *)0x0)" ( (binary_expression "(plVar49->output_section_statement).bfd_section != (asection *)0x0" (field_expression "(plVar49->output_section_statement).bfd_section" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier) != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)))" ( (parenthesized_expression "((((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3))" ( (binary_expression "(((plVar49->output_section_statement).bfd_section)->flags & 1) != 0 &&\n              (plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)" (binary_expression "(((plVar49->output_section_statement).bfd_section)->flags & 1) != 0" (parenthesized_expression "(((plVar49->output_section_statement).bfd_section)->flags & 1)" ( (binary_expression "((plVar49->output_section_statement).bfd_section)->flags & 1" (field_expression "((plVar49->output_section_statement).bfd_section)->flags" (parenthesized_expression "((plVar49->output_section_statement).bfd_section)" ( (field_expression "(plVar49->output_section_statement).bfd_section" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3)" ( (comma_expression "plVar58 = plVar49, plVar59 = plVar55, plVar8->type != 3" (assignment_expression "plVar58 = plVar49" identifier = identifier) , (comma_expression "plVar59 = plVar55, plVar8->type != 3" (assignment_expression "plVar59 = plVar55" identifier = identifier) , (binary_expression "plVar8->type != 3" (field_expression "plVar8->type" identifier -> field_identifier) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }\n            plVar55 = (lang_output_section_phdr_list *)0x0;\n            pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            einfo(pcVar26);\n          }" { (while_statement "while( true ) {\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              plVar55 = plVar59;\n              if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;\n              plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;\n              if (plVar58 == (lang_statement_union *)0x0) break;\n              plVar59 = (plVar58->output_section_statement).phdrs;\n            }" { (expression_statement "plVar55 = plVar59;" (assignment_expression "plVar55 = plVar59" identifier = identifier) ;) (if_statement "if (plVar59 != (lang_output_section_phdr_list *)0x0) goto LAB_000293ea;" if (parenthesized_expression "(plVar59 != (lang_output_section_phdr_list *)0x0)" ( (binary_expression "plVar59 != (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_000293ea;" goto statement_identifier ;)) (expression_statement "plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next;" (assignment_expression "plVar58 = (lang_statement_union *)(plVar58->output_section_statement).next" identifier = (cast_expression "(lang_statement_union *)(plVar58->output_section_statement).next" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar58->output_section_statement).next" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (plVar58 == (lang_statement_union *)0x0) break;" 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)) )) (break_statement "break;" break ;)) (expression_statement "plVar59 = (plVar58->output_section_statement).phdrs;" (assignment_expression "plVar59 = (plVar58->output_section_statement).phdrs" identifier = (field_expression "(plVar58->output_section_statement).phdrs" (parenthesized_expression "(plVar58->output_section_statement)" ( (field_expression "plVar58->output_section_statement" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "plVar55 = (lang_output_section_phdr_list *)0x0;" (assignment_expression "plVar55 = (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 "pcVar26 = (char *)dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "einfo(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) })) }) (else_clause "else {\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }" else (compound_statement "{\n          plVar55 = plVar59;\n          plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;\n          while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }\n        }" { (expression_statement "plVar55 = plVar59;" (assignment_expression "plVar55 = plVar59" identifier = identifier) ;) (expression_statement "plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail;" (assignment_expression "plVar7 = (lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail" identifier = (cast_expression "(lang_output_section_phdr_list *)(plVar49->wild_statement).children.tail" ( (type_descriptor "lang_output_section_phdr_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).children.tail" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (while_statement "while (plVar7 != (lang_output_section_phdr_list *)0x0) {\nLAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\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_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);\n            uVar61 = local_44;\n            if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }\n            plVar59 = plVar59->next;\n            local_44 = uVar61;\n            plVar7 = plVar59;\n          }" { (labeled_statement "LAB_000293ea:\n            iVar25 = strcmp(plVar59->name,plVar8->name);" statement_identifier : (expression_statement "iVar25 = strcmp(plVar59->name,plVar8->name);" (assignment_expression "iVar25 = strcmp(plVar59->name,plVar8->name)" identifier = (call_expression "strcmp(plVar59->name,plVar8->name)" identifier (argument_list "(plVar59->name,plVar8->name)" ( (field_expression "plVar59->name" identifier -> field_identifier) , (field_expression "plVar8->name" identifier -> field_identifier) )))) ;)) (expression_statement "uVar61 = local_44;" (assignment_expression "uVar61 = local_44" identifier = identifier) ;) (if_statement "if (iVar25 == 0) {\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;\n              local_6c = (lang_statement_union *)((int)local_6c + 1);\n              plVar59->used = 1;\n            }" { (if_statement "if (local_44 <= local_6c) {\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_6c)" ( (binary_expression "local_44 <= local_6c" identifier <= identifier) )) (compound_statement "{\n                uVar61 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" { (expression_statement "uVar61 = local_44 * 2;" (assignment_expression "uVar61 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_64 = (void *)xrealloc(local_64,local_44 << 3);" (assignment_expression "local_64 = (void *)xrealloc(local_64,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_64,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_64,local_44 << 3)" identifier (argument_list "(local_64,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail;" (assignment_expression "*(lang_statement_union ***)((int)local_64 + (int)local_6c * 4) =\n                   (plVar49->wild_statement).children.tail" (pointer_expression "*(lang_statement_union ***)((int)local_64 + (int)local_6c * 4)" * (cast_expression "(lang_statement_union ***)((int)local_64 + (int)local_6c * 4)" ( (type_descriptor "lang_statement_union ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)local_64 + (int)local_6c * 4)" ( (binary_expression "(int)local_64 + (int)local_6c * 4" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (field_expression "(plVar49->wild_statement).children.tail" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "local_6c = (lang_statement_union *)((int)local_6c + 1);" (assignment_expression "local_6c = (lang_statement_union *)((int)local_6c + 1)" identifier = (cast_expression "(lang_statement_union *)((int)local_6c + 1)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "plVar59->used = 1;" (assignment_expression "plVar59->used = 1" (field_expression "plVar59->used" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "plVar59 = plVar59->next;" (assignment_expression "plVar59 = plVar59->next" identifier = (field_expression "plVar59->next" identifier -> field_identifier)) ;) (expression_statement "local_44 = uVar61;" (assignment_expression "local_44 = uVar61" identifier = identifier) ;) (expression_statement "plVar7 = plVar59;" (assignment_expression "plVar7 = plVar59" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar66 = 0;" (assignment_expression "uVar66 = 0" identifier = number_literal) ;) (if_statement "if (plVar8->flags != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\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      bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");\n      uVar66 = (undefined4)bVar76;\n    }" { (expression_statement "bVar76 = exp_get_vma(plVar8->flags,0,"phdr flags");" (assignment_expression "bVar76 = 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 "uVar66 = (undefined4)bVar76;" (assignment_expression "uVar66 = (undefined4)bVar76" identifier = (cast_expression "(undefined4)bVar76" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) })) (expression_statement "peVar43 = plVar8->at;" (assignment_expression "peVar43 = plVar8->at" identifier = (field_expression "plVar8->at" identifier -> field_identifier)) ;) (expression_statement "bVar76 = 0;" (assignment_expression "bVar76 = 0" identifier = number_literal) ;) (if_statement "if (peVar43 != (etree_type *)0x0) {\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }" if (parenthesized_expression "(peVar43 != (etree_type *)0x0)" ( (binary_expression "peVar43 != (etree_type *)0x0" identifier != (cast_expression "(etree_type *)0x0" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar76 = exp_get_vma(peVar43,0,"phdr load address");\n      peVar43 = plVar8->at;\n    }" { (expression_statement "bVar76 = exp_get_vma(peVar43,0,"phdr load address");" (assignment_expression "bVar76 = exp_get_vma(peVar43,0,"phdr load address")" identifier = (call_expression "exp_get_vma(peVar43,0,"phdr load address")" identifier (argument_list "(peVar43,0,"phdr load address")" ( identifier , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "peVar43 = plVar8->at;" (assignment_expression "peVar43 = plVar8->at" identifier = (field_expression "plVar8->at" identifier -> field_identifier)) ;) })) (expression_statement "iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64);" (assignment_expression "iVar25 = bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64)" identifier = (call_expression "bfd_record_phdr(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64)" identifier (argument_list "(link_info.output_bfd,plVar8->type,plVar8->flags != (etree_type *)0x0,\n                             uVar66,peVar43 != (etree_type *)0x0,bVar76,plVar8->filehdr,\n                             plVar8->phdrs,local_6c,local_64)" ( (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 "peVar43 != (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 (iVar25 == 0) {\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      einfo(pcVar26);\n    }" { (expression_statement "pcVar26 = (char *)dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "einfo(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) })) })) (expression_statement "free(local_64);" (call_expression "free(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (expression_statement "pplVar46 = extraout_ECX;" (assignment_expression "pplVar46 = extraout_ECX" identifier = identifier) ;) (for_statement "for (plVar49 = lang_output_section_statement.head; plVar49 != (lang_statement_union *)0x0;\n      plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list) {\n    if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "plVar49 = lang_output_section_statement.head" identifier = (field_expression "lang_output_section_statement.head" identifier . field_identifier)) ; (binary_expression "plVar49 != (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 "plVar49 = (lang_statement_union *)(plVar49->wild_statement).section_list" identifier = (cast_expression "(lang_statement_union *)(plVar49->wild_statement).section_list" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).section_list" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier))) ) (compound_statement "{\n    if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }\n    }\n  }" { (if_statement "if ((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )) {\n      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }\n    }" if (parenthesized_expression "((-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       ))" ( (binary_expression "(-1 < (plVar49->output_section_statement).constraint) &&\n       (pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )" (parenthesized_expression "(-1 < (plVar49->output_section_statement).constraint)" ( (binary_expression "-1 < (plVar49->output_section_statement).constraint" number_literal < (field_expression "(plVar49->output_section_statement).constraint" (parenthesized_expression "(plVar49->output_section_statement)" ( (field_expression "plVar49->output_section_statement" identifier -> field_identifier) )) . field_identifier)) )) && (parenthesized_expression "(pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0\n       )" ( (comma_expression "pplVar46 = (plVar49->wild_statement).children.tail, pplVar46 != (lang_statement_union **)0x0" (assignment_expression "pplVar46 = (plVar49->wild_statement).children.tail" identifier = (field_expression "(plVar49->wild_statement).children.tail" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "pplVar46 != (lang_statement_union **)0x0" 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      paVar47 = (asection *)(plVar49->wild_statement).tree;\njoined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }\n    }" { (expression_statement "paVar47 = (asection *)(plVar49->wild_statement).tree;" (assignment_expression "paVar47 = (asection *)(plVar49->wild_statement).tree" identifier = (cast_expression "(asection *)(plVar49->wild_statement).tree" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(plVar49->wild_statement).tree" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier))) ;) (labeled_statement "joined_r0x0002951b:\n      if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }" statement_identifier : (if_statement "if (paVar47 != (asection *)0x0) {\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }" if (parenthesized_expression "(paVar47 != (asection *)0x0)" ( (binary_expression "paVar47 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar73 = false;\n          bVar74 = paVar47->index == 0;\n          if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }\n          paVar47 = (asection *)paVar47->name;\n          if (paVar47 == (asection *)0x0) break;\n        }" { (expression_statement "bVar73 = false;" (assignment_expression "bVar73 = false" identifier = false) ;) (expression_statement "bVar74 = paVar47->index == 0;" (assignment_expression "bVar74 = paVar47->index == 0" identifier = (binary_expression "paVar47->index == 0" (field_expression "paVar47->index" identifier -> field_identifier) == number_literal)) ;) (if_statement "if (bVar74) {\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }" if (parenthesized_expression "(bVar74)" ( identifier )) (compound_statement "{\n            pbVar9 = (byte *)paVar47->id;\n            pplVar46 = (lang_statement_union **)0x5;\n            pbVar42 = pbVar9;\n            pbVar68 = (byte *)0x3f35d;\n            do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);\n            if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;\n          }" { (expression_statement "pbVar9 = (byte *)paVar47->id;" (assignment_expression "pbVar9 = (byte *)paVar47->id" identifier = (cast_expression "(byte *)paVar47->id" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar47->id" identifier -> field_identifier))) ;) (expression_statement "pplVar46 = (lang_statement_union **)0x5;" (assignment_expression "pplVar46 = (lang_statement_union **)0x5" identifier = (cast_expression "(lang_statement_union **)0x5" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pbVar42 = pbVar9;" (assignment_expression "pbVar42 = pbVar9" identifier = identifier) ;) (expression_statement "pbVar68 = (byte *)0x3f35d;" (assignment_expression "pbVar68 = (byte *)0x3f35d" identifier = (cast_expression "(byte *)0x3f35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            } while (bVar74);" do (compound_statement "{\n              if (pplVar46 == (lang_statement_union **)0x0) break;\n              pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);\n              bVar73 = *pbVar42 < *pbVar68;\n              bVar74 = *pbVar42 == *pbVar68;\n              pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;\n              pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;\n            }" { (if_statement "if (pplVar46 == (lang_statement_union **)0x0) break;" if (parenthesized_expression "(pplVar46 == (lang_statement_union **)0x0)" ( (binary_expression "pplVar46 == (lang_statement_union **)0x0" identifier == (cast_expression "(lang_statement_union **)0x0" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "pplVar46 = (lang_statement_union **)((int)pplVar46 + -1);" (assignment_expression "pplVar46 = (lang_statement_union **)((int)pplVar46 + -1)" identifier = (cast_expression "(lang_statement_union **)((int)pplVar46 + -1)" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pplVar46 + -1)" ( (binary_expression "(int)pplVar46 + -1" (cast_expression "(int)pplVar46" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar73 = *pbVar42 < *pbVar68;" (assignment_expression "bVar73 = *pbVar42 < *pbVar68" identifier = (binary_expression "*pbVar42 < *pbVar68" (pointer_expression "*pbVar42" * identifier) < (pointer_expression "*pbVar68" * identifier))) ;) (expression_statement "bVar74 = *pbVar42 == *pbVar68;" (assignment_expression "bVar74 = *pbVar42 == *pbVar68" identifier = (binary_expression "*pbVar42 == *pbVar68" (pointer_expression "*pbVar42" * identifier) == (pointer_expression "*pbVar68" * identifier))) ;) (expression_statement "pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1;" (assignment_expression "pbVar42 = pbVar42 + (uint)bVar75 * -2 + 1" identifier = (binary_expression "pbVar42 + (uint)bVar75 * -2 + 1" (binary_expression "pbVar42 + (uint)bVar75 * -2" identifier + (binary_expression "(uint)bVar75 * -2" (cast_expression "(uint)bVar75" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1;" (assignment_expression "pbVar68 = pbVar68 + (uint)bVar75 * -2 + 1" identifier = (binary_expression "pbVar68 + (uint)bVar75 * -2 + 1" (binary_expression "pbVar68 + (uint)bVar75 * -2" identifier + (binary_expression "(uint)bVar75 * -2" (cast_expression "(uint)bVar75" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar74)" ( identifier )) ;) (if_statement "if ((!bVar73 && !bVar74) != bVar73) goto code_r0x00029557;" if (parenthesized_expression "((!bVar73 && !bVar74) != bVar73)" ( (binary_expression "(!bVar73 && !bVar74) != bVar73" (parenthesized_expression "(!bVar73 && !bVar74)" ( (binary_expression "!bVar73 && !bVar74" (unary_expression "!bVar73" ! identifier) && (unary_expression "!bVar74" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00029557;" goto statement_identifier ;)) })) (expression_statement "paVar47 = (asection *)paVar47->name;" (assignment_expression "paVar47 = (asection *)paVar47->name" identifier = (cast_expression "(asection *)paVar47->name" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar47->name" identifier -> field_identifier))) ;) (if_statement "if (paVar47 == (asection *)0x0) break;" if (parenthesized_expression "(paVar47 == (asection *)0x0)" ( (binary_expression "paVar47 == (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,(bfd_boolean *)pplVar46);\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,(bfd_boolean *)pplVar46);\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,(bfd_boolean *)pplVar46);" (call_expression "lang_find_relro_sections_1\n              (expld.dataseg.relro_start_stat,(seg_align_type *)&power,(bfd_boolean *)pplVar46)" identifier (argument_list "(expld.dataseg.relro_start_stat,(seg_align_type *)&power,(bfd_boolean *)pplVar46)" ( (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)) , (cast_expression "(bfd_boolean *)pplVar46" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) 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 "uVar61 = opb_shift;" (assignment_expression "uVar61 = opb_shift" identifier = identifier) ;) (if_statement "if (start_stop_count != 0) {\n    ppbVar62 = start_stop_syms + start_stop_count;\n    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);\n    ppbVar50 = start_stop_syms;\n    do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }" if (parenthesized_expression "(start_stop_count != 0)" ( (binary_expression "start_stop_count != 0" identifier != number_literal) )) (compound_statement "{\n    ppbVar62 = start_stop_syms + start_stop_count;\n    pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);\n    ppbVar50 = start_stop_syms;\n    do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);\n  }" { (expression_statement "ppbVar62 = start_stop_syms + start_stop_count;" (assignment_expression "ppbVar62 = start_stop_syms + start_stop_count" identifier = (binary_expression "start_stop_syms + start_stop_count" identifier + identifier)) ;) (expression_statement "pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180);" (assignment_expression "pbVar1 = (bfd *)(PTR__bfd_std_section_00092fb4 + 0x180)" identifier = (cast_expression "(bfd *)(PTR__bfd_std_section_00092fb4 + 0x180)" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_00092fb4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal) )))) ;) (expression_statement "ppbVar50 = start_stop_syms;" (assignment_expression "ppbVar50 = start_stop_syms" identifier = identifier) ;) (do_statement "do {\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    } while (ppbVar62 != ppbVar50);" do (compound_statement "{\n      while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }\n      ppbVar50 = ppbVar50 + 1;\n    }" { (while_statement "while (pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3) {\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }" while (parenthesized_expression "(pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3)" ( (comma_expression "pbVar10 = *ppbVar50, (*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3" (assignment_expression "pbVar10 = *ppbVar50" identifier = (pointer_expression "*ppbVar50" * identifier)) , (binary_expression "(*(ushort *)&pbVar10->field_0xc & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)&pbVar10->field_0xc & 0x8ff)" ( (binary_expression "*(ushort *)&pbVar10->field_0xc & 0x8ff" (pointer_expression "*(ushort *)&pbVar10->field_0xc" * (cast_expression "(ushort *)&pbVar10->field_0xc" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar10->field_0xc" & (field_expression "pbVar10->field_0xc" identifier -> field_identifier)))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar26 = (pbVar10->root).string;\n        local_5c._0_1_ = (byte)uVar61;\n        if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }\n        if (pcVar26[2] != 'i') break;\n        pbVar11 = (pbVar10->u).undef.abfd;\n        pbVar12 = pbVar11->plugin_dummy_bfd;\n        pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));\n        pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));\n        pcVar30 = pcVar69;\n        if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }\n        ppbVar50 = ppbVar50 + 1;\n        (pbVar10->u).i.warning = pcVar26;\n        *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n        (pbVar10->u).undef.abfd = pbVar1;\n        if (ppbVar62 == ppbVar50) goto LAB_000296b8;\n      }" { (expression_statement "pcVar26 = (pbVar10->root).string;" (assignment_expression "pcVar26 = (pbVar10->root).string" identifier = (field_expression "(pbVar10->root).string" (parenthesized_expression "(pbVar10->root)" ( (field_expression "pbVar10->root" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_5c._0_1_ = (byte)uVar61;" (assignment_expression "local_5c._0_1_ = (byte)uVar61" (field_expression "local_5c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar61" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar26 != '.') {\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar26 != '.')" ( (binary_expression "*pcVar26 != '.'" (pointer_expression "*pcVar26" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar2 = pbVar6->xvec->symbol_leading_char;\n          pbVar37 = ((pbVar10->u).def.section)->output_section;\n          (pbVar10->u).undef.abfd = (bfd *)pbVar37;\n          if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }\n          break;\n        }" { (expression_statement "cVar2 = pbVar6->xvec->symbol_leading_char;" (assignment_expression "cVar2 = pbVar6->xvec->symbol_leading_char" identifier = (field_expression "pbVar6->xvec->symbol_leading_char" (field_expression "pbVar6->xvec" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pbVar37 = ((pbVar10->u).def.section)->output_section;" (assignment_expression "pbVar37 = ((pbVar10->u).def.section)->output_section" identifier = (field_expression "((pbVar10->u).def.section)->output_section" (parenthesized_expression "((pbVar10->u).def.section)" ( (field_expression "(pbVar10->u).def.section" (field_expression "(pbVar10->u).def" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) )) -> field_identifier)) ;) (expression_statement "(pbVar10->u).undef.abfd = (bfd *)pbVar37;" (assignment_expression "(pbVar10->u).undef.abfd = (bfd *)pbVar37" (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(bfd *)pbVar37" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (pcVar26[(cVar2 != '\0') + 4] == 'o') {\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }" if (parenthesized_expression "(pcVar26[(cVar2 != '\0') + 4] == 'o')" ( (binary_expression "pcVar26[(cVar2 != '\0') + 4] == 'o'" (subscript_expression "pcVar26[(cVar2 != '\0') + 4]" identifier [ (binary_expression "(cVar2 != '\0') + 4" (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            uVar63 = *(uint *)((int)&pbVar37->size + 4);\n            pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));\n            pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));\n            pcVar30 = pcVar69;\n            if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }\n            (pbVar10->u).i.warning = pcVar26;\n            *(char **)((int)&pbVar10->u + 0xc) = pcVar30;\n          }" { (expression_statement "uVar63 = *(uint *)((int)&pbVar37->size + 4);" (assignment_expression "uVar63 = *(uint *)((int)&pbVar37->size + 4)" identifier = (pointer_expression "*(uint *)((int)&pbVar37->size + 4)" * (cast_expression "(uint *)((int)&pbVar37->size + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar37->size + 4)" ( (binary_expression "(int)&pbVar37->size + 4" (cast_expression "(int)&pbVar37->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar37->size" & (field_expression "pbVar37->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f));" (assignment_expression "pcVar69 = (char *)(uVar63 >> ((byte)local_5c & 0x1f))" identifier = (cast_expression "(char *)(uVar63 >> ((byte)local_5c & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar63 >> ((byte)local_5c & 0x1f))" ( (binary_expression "uVar63 >> ((byte)local_5c & 0x1f)" identifier >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f));" (assignment_expression "pcVar26 = (char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f))" identifier = (cast_expression "(char *)((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f))" ( (binary_expression "(uint)pbVar37->size >> ((byte)local_5c & 0x1f) |\n                              uVar63 << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "(uint)pbVar37->size >> ((byte)local_5c & 0x1f)" (cast_expression "(uint)pbVar37->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "pbVar37->size" identifier -> field_identifier)) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "uVar63 << 0x20 - ((byte)local_5c & 0x1f)" identifier << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) )))) ;) (expression_statement "pcVar30 = pcVar69;" (assignment_expression "pcVar30 = pcVar69" identifier = identifier) ;) (if_statement "if ((uVar61 & 0x20) != 0) {\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }" if (parenthesized_expression "((uVar61 & 0x20) != 0)" ( (binary_expression "(uVar61 & 0x20) != 0" (parenthesized_expression "(uVar61 & 0x20)" ( (binary_expression "uVar61 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              pcVar30 = (char *)0x0;\n              pcVar26 = pcVar69;\n            }" { (expression_statement "pcVar30 = (char *)0x0;" (assignment_expression "pcVar30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar26 = pcVar69;" (assignment_expression "pcVar26 = pcVar69" identifier = identifier) ;) })) (expression_statement "(pbVar10->u).i.warning = pcVar26;" (assignment_expression "(pbVar10->u).i.warning = pcVar26" (field_expression "(pbVar10->u).i.warning" (field_expression "(pbVar10->u).i" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*(char **)((int)&pbVar10->u + 0xc) = pcVar30;" (assignment_expression "*(char **)((int)&pbVar10->u + 0xc) = pcVar30" (pointer_expression "*(char **)((int)&pbVar10->u + 0xc)" * (cast_expression "(char **)((int)&pbVar10->u + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pbVar10->u + 0xc)" ( (binary_expression "(int)&pbVar10->u + 0xc" (cast_expression "(int)&pbVar10->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar10->u" & (field_expression "pbVar10->u" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar26[2] != 'i') break;" if (parenthesized_expression "(pcVar26[2] != 'i')" ( (binary_expression "pcVar26[2] != 'i'" (subscript_expression "pcVar26[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "pbVar11 = (pbVar10->u).undef.abfd;" (assignment_expression "pbVar11 = (pbVar10->u).undef.abfd" identifier = (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pbVar12 = pbVar11->plugin_dummy_bfd;" (assignment_expression "pbVar12 = pbVar11->plugin_dummy_bfd" identifier = (field_expression "pbVar11->plugin_dummy_bfd" identifier -> field_identifier)) ;) (expression_statement "pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f));" (assignment_expression "pcVar69 = (char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f))" identifier = (cast_expression "(char *)((uint)pbVar12 >> ((byte)local_5c & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pbVar12 >> ((byte)local_5c & 0x1f))" ( (binary_expression "(uint)pbVar12 >> ((byte)local_5c & 0x1f)" (cast_expression "(uint)pbVar12" ( (type_descriptor "uint" type_identifier) ) identifier) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) ;) (expression_statement "pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f));" (assignment_expression "pcVar26 = (char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f))" identifier = (cast_expression "(char *)(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f))" ( (binary_expression "*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f) |\n                          (int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)&pbVar11->field_0x2c >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)&pbVar11->field_0x2c" * (cast_expression "(uint *)&pbVar11->field_0x2c" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pbVar11->field_0x2c" & (field_expression "pbVar11->field_0x2c" identifier -> field_identifier)))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "(int)pbVar12 << 0x20 - ((byte)local_5c & 0x1f)" (cast_expression "(int)pbVar12" ( (type_descriptor "int" primitive_type) ) identifier) << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))))) )))) ;) (expression_statement "pcVar30 = pcVar69;" (assignment_expression "pcVar30 = pcVar69" identifier = identifier) ;) (if_statement "if ((uVar61 & 0x20) != 0) {\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }" if (parenthesized_expression "((uVar61 & 0x20) != 0)" ( (binary_expression "(uVar61 & 0x20) != 0" (parenthesized_expression "(uVar61 & 0x20)" ( (binary_expression "uVar61 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar30 = (char *)0x0;\n          pcVar26 = pcVar69;\n        }" { (expression_statement "pcVar30 = (char *)0x0;" (assignment_expression "pcVar30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar26 = pcVar69;" (assignment_expression "pcVar26 = pcVar69" identifier = identifier) ;) })) (expression_statement "ppbVar50 = ppbVar50 + 1;" (assignment_expression "ppbVar50 = ppbVar50 + 1" identifier = (binary_expression "ppbVar50 + 1" identifier + number_literal)) ;) (expression_statement "(pbVar10->u).i.warning = pcVar26;" (assignment_expression "(pbVar10->u).i.warning = pcVar26" (field_expression "(pbVar10->u).i.warning" (field_expression "(pbVar10->u).i" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "*(char **)((int)&pbVar10->u + 0xc) = pcVar30;" (assignment_expression "*(char **)((int)&pbVar10->u + 0xc) = pcVar30" (pointer_expression "*(char **)((int)&pbVar10->u + 0xc)" * (cast_expression "(char **)((int)&pbVar10->u + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&pbVar10->u + 0xc)" ( (binary_expression "(int)&pbVar10->u + 0xc" (cast_expression "(int)&pbVar10->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar10->u" & (field_expression "pbVar10->u" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "(pbVar10->u).undef.abfd = pbVar1;" (assignment_expression "(pbVar10->u).undef.abfd = pbVar1" (field_expression "(pbVar10->u).undef.abfd" (field_expression "(pbVar10->u).undef" (parenthesized_expression "(pbVar10->u)" ( (field_expression "pbVar10->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (ppbVar62 == ppbVar50) goto LAB_000296b8;" if (parenthesized_expression "(ppbVar62 == ppbVar50)" ( (binary_expression "ppbVar62 == ppbVar50" identifier == identifier) )) (goto_statement "goto LAB_000296b8;" goto statement_identifier ;)) })) (expression_statement "ppbVar50 = ppbVar50 + 1;" (assignment_expression "ppbVar50 = ppbVar50 + 1" identifier = (binary_expression "ppbVar50 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppbVar62 != ppbVar50)" ( (binary_expression "ppbVar62 != ppbVar50" identifier != identifier) )) ;) })) (labeled_statement "LAB_000296b8:\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 "prVar19 = require_defined_symbol_list;" (assignment_expression "prVar19 = require_defined_symbol_list" identifier = identifier) ;) (if_statement "if (command_line.check_section_addresses != '\0') {\n    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);\n    uVar70 = iVar25 - 1U >> 5 & 1;\n    bVar75 = (byte)(iVar25 - 1U);\n    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);\n    iVar25 = uVar61 * 2;\n    uVar63 = iVar25 - 1;\n    pbVar37 = (link_info.output_bfd)->sections;\n    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);\n    if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }\n    prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = 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    iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);\n    uVar70 = iVar25 - 1U >> 5 & 1;\n    bVar75 = (byte)(iVar25 - 1U);\n    uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);\n    iVar25 = uVar61 * 2;\n    uVar63 = iVar25 - 1;\n    pbVar37 = (link_info.output_bfd)->sections;\n    uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);\n    if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }\n    prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = require_defined_symbol_list;\n    }\n  }" { (expression_statement "iVar25 = bfd_arch_bits_per_address(link_info.output_bfd);" (assignment_expression "iVar25 = 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 "uVar70 = iVar25 - 1U >> 5 & 1;" (assignment_expression "uVar70 = iVar25 - 1U >> 5 & 1" identifier = (binary_expression "iVar25 - 1U >> 5 & 1" (binary_expression "iVar25 - 1U >> 5" (binary_expression "iVar25 - 1U" identifier - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar75 = (byte)(iVar25 - 1U);" (assignment_expression "bVar75 = (byte)(iVar25 - 1U)" identifier = (call_expression "(byte)(iVar25 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar25 - 1U)" ( (binary_expression "iVar25 - 1U" identifier - number_literal) )))) ;) (expression_statement "uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f);" (assignment_expression "uVar61 = (uVar70 ^ 1) << (bVar75 & 0x1f)" identifier = (binary_expression "(uVar70 ^ 1) << (bVar75 & 0x1f)" (parenthesized_expression "(uVar70 ^ 1)" ( (binary_expression "uVar70 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar75 & 0x1f)" ( (binary_expression "bVar75 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "iVar25 = uVar61 * 2;" (assignment_expression "iVar25 = uVar61 * 2" identifier = (binary_expression "uVar61 * 2" identifier * number_literal)) ;) (expression_statement "uVar63 = iVar25 - 1;" (assignment_expression "uVar63 = iVar25 - 1" identifier = (binary_expression "iVar25 - 1" identifier - number_literal)) ;) (expression_statement "pbVar37 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar37 = (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 "uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0);" (assignment_expression "uVar61 = (((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0)" identifier = (binary_expression "(((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1) + (uint)(iVar25 != 0)" (parenthesized_expression "(((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1)" ( (binary_expression "((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f) - 1" (parenthesized_expression "((uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f)" ( (binary_expression "(uVar70 << (bVar75 & 0x1f)) << 1 | uVar61 >> 0x1f" (binary_expression "(uVar70 << (bVar75 & 0x1f)) << 1" (parenthesized_expression "(uVar70 << (bVar75 & 0x1f))" ( (binary_expression "uVar70 << (bVar75 & 0x1f)" identifier << (parenthesized_expression "(bVar75 & 0x1f)" ( (binary_expression "bVar75 & 0x1f" identifier & number_literal) ))) )) << number_literal) | (binary_expression "uVar61 >> 0x1f" identifier >> number_literal)) )) - number_literal) )) + (call_expression "(uint)(iVar25 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) ))))) ;) (if_statement "if (pbVar37 != (bfd_section *)0x0) {\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }" if (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);\n    }" { (do_statement "do {\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      } while (pbVar37 != (bfd_section *)0x0);" do (compound_statement "{\n        if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }\nLAB_0002a1a0:\n        pbVar37 = pbVar37->next;\n      }" { (if_statement "if ((pbVar37->flags & 1) != 0) {\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }" if (parenthesized_expression "((pbVar37->flags & 1) != 0)" ( (binary_expression "(pbVar37->flags & 1) != 0" (parenthesized_expression "(pbVar37->flags & 1)" ( (binary_expression "pbVar37->flags & 1" (field_expression "pbVar37->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar70 = (uint)pbVar37->vma;\n          uVar41 = (uint)pbVar37->size;\n          uVar40 = *(uint *)((int)&pbVar37->vma + 4);\n          iVar25 = *(int *)((int)&pbVar37->size + 4);\n          uVar64 = uVar63 & uVar70 + uVar41;\n          uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);\n          if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          pcVar30 = (char *)dcgettext(0,pcVar30,5);\n          einfo(pcVar30,pcVar26);\n        }" { (expression_statement "uVar70 = (uint)pbVar37->vma;" (assignment_expression "uVar70 = (uint)pbVar37->vma" identifier = (cast_expression "(uint)pbVar37->vma" ( (type_descriptor "uint" type_identifier) ) (field_expression "pbVar37->vma" identifier -> field_identifier))) ;) (expression_statement "uVar41 = (uint)pbVar37->size;" (assignment_expression "uVar41 = (uint)pbVar37->size" identifier = (cast_expression "(uint)pbVar37->size" ( (type_descriptor "uint" type_identifier) ) (field_expression "pbVar37->size" identifier -> field_identifier))) ;) (expression_statement "uVar40 = *(uint *)((int)&pbVar37->vma + 4);" (assignment_expression "uVar40 = *(uint *)((int)&pbVar37->vma + 4)" identifier = (pointer_expression "*(uint *)((int)&pbVar37->vma + 4)" * (cast_expression "(uint *)((int)&pbVar37->vma + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar37->vma + 4)" ( (binary_expression "(int)&pbVar37->vma + 4" (cast_expression "(int)&pbVar37->vma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar37->vma" & (field_expression "pbVar37->vma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)((int)&pbVar37->size + 4);" (assignment_expression "iVar25 = *(int *)((int)&pbVar37->size + 4)" identifier = (pointer_expression "*(int *)((int)&pbVar37->size + 4)" * (cast_expression "(int *)((int)&pbVar37->size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar37->size + 4)" ( (binary_expression "(int)&pbVar37->size + 4" (cast_expression "(int)&pbVar37->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar37->size" & (field_expression "pbVar37->size" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar64 = uVar63 & uVar70 + uVar41;" (assignment_expression "uVar64 = uVar63 & uVar70 + uVar41" identifier = (binary_expression "uVar63 & uVar70 + uVar41" identifier & (binary_expression "uVar70 + uVar41" identifier + identifier))) ;) (expression_statement "uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41);" (assignment_expression "uVar71 = uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41)" identifier = (binary_expression "uVar61 & uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41)" identifier & (binary_expression "uVar40 + iVar25 + (uint)CARRY4(uVar70,uVar41)" (binary_expression "uVar40 + iVar25" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar70,uVar41)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar70,uVar41)" identifier (argument_list "(uVar70,uVar41)" ( identifier , identifier ))))))) ;) (if_statement "if ((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)) {\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40))" ( (binary_expression "(uVar71 == 0 && uVar64 == 0) ||\n             (uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)" (parenthesized_expression "(uVar71 == 0 && uVar64 == 0)" ( (binary_expression "uVar71 == 0 && uVar64 == 0" (binary_expression "uVar71 == 0" identifier == number_literal) && (binary_expression "uVar64 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40)" ( (comma_expression "uVar40 = uVar61 & uVar40,\n             uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40" (assignment_expression "uVar40 = uVar61 & uVar40" identifier = (binary_expression "uVar61 & uVar40" identifier & identifier)) , (binary_expression "uVar40 <= uVar71 && (uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40" (binary_expression "uVar40 <= uVar71" identifier <= identifier) && (binary_expression "(uint)(uVar64 < (uVar63 & uVar70)) <= uVar71 - uVar40" (call_expression "(uint)(uVar64 < (uVar63 & uVar70))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar64 < (uVar63 & uVar70))" ( (binary_expression "uVar64 < (uVar63 & uVar70)" identifier < (parenthesized_expression "(uVar63 & uVar70)" ( (binary_expression "uVar63 & uVar70" identifier & identifier) ))) ))) <= (binary_expression "uVar71 - uVar40" identifier - identifier)))) ))) )) (compound_statement "{\n            uVar70 = (uint)pbVar37->lma;\n            uVar40 = *(uint *)((int)&pbVar37->lma + 4);\n            uVar64 = uVar63 & uVar41 + uVar70;\n            uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;\n            if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar70 = (uint)pbVar37->lma;" (assignment_expression "uVar70 = (uint)pbVar37->lma" identifier = (cast_expression "(uint)pbVar37->lma" ( (type_descriptor "uint" type_identifier) ) (field_expression "pbVar37->lma" identifier -> field_identifier))) ;) (expression_statement "uVar40 = *(uint *)((int)&pbVar37->lma + 4);" (assignment_expression "uVar40 = *(uint *)((int)&pbVar37->lma + 4)" identifier = (pointer_expression "*(uint *)((int)&pbVar37->lma + 4)" * (cast_expression "(uint *)((int)&pbVar37->lma + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar37->lma + 4)" ( (binary_expression "(int)&pbVar37->lma + 4" (cast_expression "(int)&pbVar37->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar37->lma" & (field_expression "pbVar37->lma" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar64 = uVar63 & uVar41 + uVar70;" (assignment_expression "uVar64 = uVar63 & uVar41 + uVar70" identifier = (binary_expression "uVar63 & uVar41 + uVar70" identifier & (binary_expression "uVar41 + uVar70" identifier + identifier))) ;) (expression_statement "uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61;" (assignment_expression "uVar41 = iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61" identifier = (binary_expression "iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70) & uVar61" (binary_expression "iVar25 + uVar40 + (uint)CARRY4(uVar41,uVar70)" (binary_expression "iVar25 + uVar40" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar41,uVar70)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar41,uVar70)" identifier (argument_list "(uVar41,uVar70)" ( identifier , identifier ))))) & identifier)) ;) (if_statement "if ((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))\n            goto LAB_0002a1a0;" if (parenthesized_expression "((uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40))" ( (binary_expression "(uVar41 == 0 && uVar64 == 0) ||\n               (uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40)" (parenthesized_expression "(uVar41 == 0 && uVar64 == 0)" ( (binary_expression "uVar41 == 0 && uVar64 == 0" (binary_expression "uVar41 == 0" identifier == number_literal) && (binary_expression "uVar64 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40)" ( (comma_expression "uVar40 = uVar40 & uVar61,\n               uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40" (assignment_expression "uVar40 = uVar40 & uVar61" identifier = (binary_expression "uVar40 & uVar61" identifier & identifier)) , (binary_expression "uVar40 <= uVar41 && (uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40" (binary_expression "uVar40 <= uVar41" identifier <= identifier) && (binary_expression "(uint)(uVar64 < (uVar70 & uVar63)) <= uVar41 - uVar40" (call_expression "(uint)(uVar64 < (uVar70 & uVar63))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar64 < (uVar70 & uVar63))" ( (binary_expression "uVar64 < (uVar70 & uVar63)" identifier < (parenthesized_expression "(uVar70 & uVar63)" ( (binary_expression "uVar70 & uVar63" identifier & identifier) ))) ))) <= (binary_expression "uVar41 - uVar40" identifier - identifier)))) ))) )) (goto_statement "goto LAB_0002a1a0;" goto statement_identifier ;)) (expression_statement "pcVar26 = pbVar37->name;" (assignment_expression "pcVar26 = pbVar37->name" identifier = (field_expression "pbVar37->name" identifier -> field_identifier)) ;) (expression_statement "pcVar30 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar30 = "%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            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            pcVar26 = pbVar37->name;\n            pcVar30 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "pcVar26 = pbVar37->name;" (assignment_expression "pcVar26 = pbVar37->name" identifier = (field_expression "pbVar37->name" identifier -> field_identifier)) ;) (expression_statement "pcVar30 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar30 = "%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 "pcVar30 = (char *)dcgettext(0,pcVar30,5);" (assignment_expression "pcVar30 = (char *)dcgettext(0,pcVar30,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar30,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar30,5)" identifier (argument_list "(0,pcVar30,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0002a1a0:\n        pbVar37 = pbVar37->next;" statement_identifier : (expression_statement "pbVar37 = pbVar37->next;" (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ;)) }) while (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "prVar19 = require_defined_symbol_list;" (assignment_expression "prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = 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      uVar61 = 0;\n      pbVar37 = (link_info.output_bfd)->sections;\n      if (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(__ptr);\n      prVar19 = 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 "uVar61 = 0;" (assignment_expression "uVar61 = 0" identifier = number_literal) ;) (expression_statement "pbVar37 = (link_info.output_bfd)->sections;" (assignment_expression "pbVar37 = (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 (pbVar37 != (bfd_section *)0x0) {\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" if (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);\n        if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" { (do_statement "do {\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        } while (pbVar37 != (bfd_section *)0x0);" do (compound_statement "{\n          if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }\n          pbVar37 = pbVar37->next;\n        }" { (if_statement "if ((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)) {\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }" if (parenthesized_expression "((((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0))" ( (binary_expression "(((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)) &&\n             (*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)" (parenthesized_expression "(((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400))" ( (binary_expression "((pbVar37->flags & 1) != 0) && ((pbVar37->flags & 0x402) != 0x400)" (parenthesized_expression "((pbVar37->flags & 1) != 0)" ( (binary_expression "(pbVar37->flags & 1) != 0" (parenthesized_expression "(pbVar37->flags & 1)" ( (binary_expression "pbVar37->flags & 1" (field_expression "pbVar37->flags" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((pbVar37->flags & 0x402) != 0x400)" ( (binary_expression "(pbVar37->flags & 0x402) != 0x400" (parenthesized_expression "(pbVar37->flags & 0x402)" ( (binary_expression "pbVar37->flags & 0x402" (field_expression "pbVar37->flags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0)" ( (binary_expression "*(int *)((int)&pbVar37->size + 4) != 0 || (int)pbVar37->size != 0" (binary_expression "*(int *)((int)&pbVar37->size + 4) != 0" (pointer_expression "*(int *)((int)&pbVar37->size + 4)" * (cast_expression "(int *)((int)&pbVar37->size + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar37->size + 4)" ( (binary_expression "(int)&pbVar37->size + 4" (cast_expression "(int)&pbVar37->size" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar37->size" & (field_expression "pbVar37->size" identifier -> field_identifier))) + number_literal) )))) != number_literal) || (binary_expression "(int)pbVar37->size != 0" (cast_expression "(int)pbVar37->size" ( (type_descriptor "int" primitive_type) ) (field_expression "pbVar37->size" identifier -> field_identifier)) != number_literal)) ))) )) (compound_statement "{\n            iVar25 = uVar61 * 2;\n            uVar61 = uVar61 + 1;\n            __ptr[iVar25] = (int)pbVar37;\n            (__ptr + iVar25)[1] = 0;\n          }" { (expression_statement "iVar25 = uVar61 * 2;" (assignment_expression "iVar25 = uVar61 * 2" identifier = (binary_expression "uVar61 * 2" identifier * number_literal)) ;) (expression_statement "uVar61 = uVar61 + 1;" (assignment_expression "uVar61 = uVar61 + 1" identifier = (binary_expression "uVar61 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[iVar25] = (int)pbVar37;" (assignment_expression "__ptr[iVar25] = (int)pbVar37" (subscript_expression "__ptr[iVar25]" identifier [ identifier ]) = (cast_expression "(int)pbVar37" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(__ptr + iVar25)[1] = 0;" (assignment_expression "(__ptr + iVar25)[1] = 0" (subscript_expression "(__ptr + iVar25)[1]" (parenthesized_expression "(__ptr + iVar25)" ( (binary_expression "__ptr + iVar25" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "pbVar37 = pbVar37->next;" (assignment_expression "pbVar37 = pbVar37->next" identifier = (field_expression "pbVar37->next" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pbVar37 != (bfd_section *)0x0)" ( (binary_expression "pbVar37 != (bfd_section *)0x0" identifier != (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (if_statement "if (1 < uVar61) {\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" if (parenthesized_expression "(1 < uVar61)" ( (binary_expression "1 < uVar61" number_literal < identifier) )) (compound_statement "{\n          qsort(__ptr,uVar61,8,sort_sections_by_lma);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar65 = __ptr;\n          puVar72 = (undefined4 *)0x0;\n          do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);\nLAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);\n          puVar72 = (undefined4 *)*__ptr;\n          uVar40 = 1;\n          uVar63 = puVar72[8];\n          pbVar6 = (bfd *)puVar72[7];\n          uVar70 = uVar63;\n          uVar41 = (uint)pbVar6;\n          do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);\n          bVar75 = (byte)opb_shift & 0x1f;\n          uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n          uVar41 = uVar40;\n          uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n          if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }\n          local_6c = (lang_statement_union *)0x0;\n          uVar40 = uVar70 + ((int)pbVar6 - 1U);\n          uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n          while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(__ptr);\n          for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" { (expression_statement "qsort(__ptr,uVar61,8,sort_sections_by_lma);" (call_expression "qsort(__ptr,uVar61,8,sort_sections_by_lma)" identifier (argument_list "(__ptr,uVar61,8,sort_sections_by_lma)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_4c = (undefined4 *)0x0;" (assignment_expression "local_4c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "piVar65 = __ptr;" (assignment_expression "piVar65 = __ptr" identifier = identifier) ;) (expression_statement "puVar72 = (undefined4 *)0x0;" (assignment_expression "puVar72 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          } while (__ptr + uVar61 * 2 != piVar65);" do (compound_statement "{\n            while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }\n            local_48 = uVar63;\n            local_4c = puVar18;\n            local_58 = uVar41;\n            local_5c = uVar70;\n            puVar72 = puVar24;\n            piVar65 = piVar65 + 2;\n          }" { (while_statement "while (puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0) {\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }" while (parenthesized_expression "(puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0)" ( (comma_expression "puVar17 = (undefined4 *)*piVar65, puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "puVar17 = (undefined4 *)*piVar65" identifier = (cast_expression "(undefined4 *)*piVar65" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar65" * identifier))) , (comma_expression "puVar24 = puVar72, uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "puVar24 = puVar72" identifier = identifier) , (comma_expression "uVar70 = local_5c,\n                  uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "uVar70 = local_5c" identifier = identifier) , (comma_expression "uVar41 = local_58, puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "uVar41 = local_58" identifier = identifier) , (comma_expression "puVar18 = local_4c, uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "puVar18 = local_4c" identifier = identifier) , (comma_expression "uVar63 = local_48,\n                  (*(byte *)(puVar17 + 5) & 2) != 0" (assignment_expression "uVar63 = local_48" identifier = identifier) , (binary_expression "(*(byte *)(puVar17 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar17 + 5) & 2)" ( (binary_expression "*(byte *)(puVar17 + 5) & 2" (pointer_expression "*(byte *)(puVar17 + 5)" * (cast_expression "(byte *)(puVar17 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 5)" ( (binary_expression "puVar17 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal))))))) )) (compound_statement "{\n              puVar18 = (undefined4 *)puVar17[9];\n              uVar63 = puVar17[10];\n              bVar75 = (byte)opb_shift & 0x1f;\n              uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);\n              uVar40 = uVar70;\n              uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;\n              if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }\n              uVar70 = uVar41 + ((int)puVar18 - 1U);\n              uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);\n              puVar24 = puVar17;\n              if (puVar72 == (undefined4 *)0x0) break;\n              if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }\n              piVar65 = piVar65 + 2;\n              puVar72 = puVar17;\n              local_5c = uVar70;\n              local_58 = uVar41;\n              local_4c = puVar18;\n              local_48 = uVar63;\n              if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;\n            }" { (expression_statement "puVar18 = (undefined4 *)puVar17[9];" (assignment_expression "puVar18 = (undefined4 *)puVar17[9]" identifier = (cast_expression "(undefined4 *)puVar17[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar17[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar63 = puVar17[10];" (assignment_expression "uVar63 = puVar17[10]" identifier = (subscript_expression "puVar17[10]" identifier [ number_literal ])) ;) (expression_statement "bVar75 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar75 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar70 = (uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "(uint)puVar17[0xc] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar17[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar17[0xc]" 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 "uVar40 = uVar70;" (assignment_expression "uVar40 = uVar70" identifier = identifier) ;) (expression_statement "uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75;" (assignment_expression "uVar41 = (uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75" identifier = (binary_expression "(uint)puVar17[0xb] >> bVar75 | puVar17[0xc] << 0x20 - bVar75" (binary_expression "(uint)puVar17[0xb] >> bVar75" (cast_expression "(uint)puVar17[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar17[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar17[0xc] << 0x20 - bVar75" (subscript_expression "puVar17[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar75" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar40 = 0;\n                uVar41 = uVar70;\n              }" { (expression_statement "uVar40 = 0;" (assignment_expression "uVar40 = 0" identifier = number_literal) ;) (expression_statement "uVar41 = uVar70;" (assignment_expression "uVar41 = uVar70" identifier = identifier) ;) })) (expression_statement "uVar70 = uVar41 + ((int)puVar18 - 1U);" (assignment_expression "uVar70 = uVar41 + ((int)puVar18 - 1U)" identifier = (binary_expression "uVar41 + ((int)puVar18 - 1U)" identifier + (parenthesized_expression "((int)puVar18 - 1U)" ( (binary_expression "(int)puVar18 - 1U" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U);" (assignment_expression "uVar41 = uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U)" identifier = (binary_expression "uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar41,(int)puVar18 - 1U)" (binary_expression "uVar40 + (uVar63 - 1) + (uint)(puVar18 != (undefined4 *)0x0)" (binary_expression "uVar40 + (uVar63 - 1)" identifier + (parenthesized_expression "(uVar63 - 1)" ( (binary_expression "uVar63 - 1" identifier - number_literal) ))) + (call_expression "(uint)(puVar18 != (undefined4 *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar18 != (undefined4 *)0x0)" ( (binary_expression "puVar18 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) + (cast_expression "(uint)CARRY4(uVar41,(int)puVar18 - 1U)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar41,(int)puVar18 - 1U)" identifier (argument_list "(uVar41,(int)puVar18 - 1U)" ( identifier , (binary_expression "(int)puVar18 - 1U" (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))))) ;) (expression_statement "puVar24 = puVar17;" (assignment_expression "puVar24 = puVar17" identifier = identifier) ;) (if_statement "if (puVar72 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar72 == (undefined4 *)0x0)" ( (binary_expression "puVar72 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }" if (parenthesized_expression "((uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)))" ( (binary_expression "(uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" (parenthesized_expression "(uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63)" ( (binary_expression "uVar63 <= local_58 && (uint)(local_5c < puVar18) <= local_58 - uVar63" (binary_expression "uVar63 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < puVar18) <= local_58 - uVar63" (call_expression "(uint)(local_5c < puVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < puVar18)" ( (binary_expression "local_5c < puVar18" identifier < identifier) ))) <= (binary_expression "local_58 - uVar63" identifier - identifier))) )) || (parenthesized_expression "(local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" ( (binary_expression "local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 < local_48" identifier < identifier) || (binary_expression "local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 - local_48" identifier - identifier) < (call_expression "(uint)(local_5c < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_4c)" ( (binary_expression "local_5c < local_4c" identifier < identifier) ))))) ))) )) (compound_statement "{\n                uVar66 = *puVar17;\n                uVar33 = *puVar72;\n                pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);\n                einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);\n                piVar65[1] = 1;\n                break;\n              }" { (expression_statement "uVar66 = *puVar17;" (assignment_expression "uVar66 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) (expression_statement "uVar33 = *puVar72;" (assignment_expression "uVar33 = *puVar72" identifier = (pointer_expression "*puVar72" * identifier)) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"\n                                            ,5);" (assignment_expression "pcVar26 = (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(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58);" (call_expression "einfo(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58)" identifier (argument_list "(pcVar26,uVar66,puVar18,uVar63,uVar70,uVar41,uVar33,local_4c,local_48,local_5c,\n                      local_58)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "piVar65[1] = 1;" (assignment_expression "piVar65[1] = 1" (subscript_expression "piVar65[1]" identifier [ number_literal ]) = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "piVar65 = piVar65 + 2;" (assignment_expression "piVar65 = piVar65 + 2" identifier = (binary_expression "piVar65 + 2" identifier + number_literal)) ;) (expression_statement "puVar72 = puVar17;" (assignment_expression "puVar72 = puVar17" identifier = identifier) ;) (expression_statement "local_5c = uVar70;" (assignment_expression "local_5c = uVar70" identifier = identifier) ;) (expression_statement "local_58 = uVar41;" (assignment_expression "local_58 = uVar41" identifier = identifier) ;) (expression_statement "local_4c = puVar18;" (assignment_expression "local_4c = puVar18" identifier = identifier) ;) (expression_statement "local_48 = uVar63;" (assignment_expression "local_48 = uVar63" identifier = identifier) ;) (if_statement "if (__ptr + uVar61 * 2 == piVar65) goto LAB_0002a3c8;" if (parenthesized_expression "(__ptr + uVar61 * 2 == piVar65)" ( (binary_expression "__ptr + uVar61 * 2 == piVar65" (binary_expression "__ptr + uVar61 * 2" identifier + (binary_expression "uVar61 * 2" identifier * number_literal)) == identifier) )) (goto_statement "goto LAB_0002a3c8;" goto statement_identifier ;)) })) (expression_statement "local_48 = uVar63;" (assignment_expression "local_48 = uVar63" identifier = identifier) ;) (expression_statement "local_4c = puVar18;" (assignment_expression "local_4c = puVar18" identifier = identifier) ;) (expression_statement "local_58 = uVar41;" (assignment_expression "local_58 = uVar41" identifier = identifier) ;) (expression_statement "local_5c = uVar70;" (assignment_expression "local_5c = uVar70" identifier = identifier) ;) (expression_statement "puVar72 = puVar24;" (assignment_expression "puVar72 = puVar24" identifier = identifier) ;) (expression_statement "piVar65 = piVar65 + 2;" (assignment_expression "piVar65 = piVar65 + 2" identifier = (binary_expression "piVar65 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(__ptr + uVar61 * 2 != piVar65)" ( (binary_expression "__ptr + uVar61 * 2 != piVar65" (binary_expression "__ptr + uVar61 * 2" identifier + (binary_expression "uVar61 * 2" identifier * number_literal)) != identifier) )) ;) (labeled_statement "LAB_0002a3c8:\n          qsort(__ptr,uVar61,8,sort_sections_by_vma);" statement_identifier : (expression_statement "qsort(__ptr,uVar61,8,sort_sections_by_vma);" (call_expression "qsort(__ptr,uVar61,8,sort_sections_by_vma)" identifier (argument_list "(__ptr,uVar61,8,sort_sections_by_vma)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "puVar72 = (undefined4 *)*__ptr;" (assignment_expression "puVar72 = (undefined4 *)*__ptr" identifier = (cast_expression "(undefined4 *)*__ptr" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*__ptr" * identifier))) ;) (expression_statement "uVar40 = 1;" (assignment_expression "uVar40 = 1" identifier = number_literal) ;) (expression_statement "uVar63 = puVar72[8];" (assignment_expression "uVar63 = puVar72[8]" identifier = (subscript_expression "puVar72[8]" identifier [ number_literal ])) ;) (expression_statement "pbVar6 = (bfd *)puVar72[7];" (assignment_expression "pbVar6 = (bfd *)puVar72[7]" identifier = (cast_expression "(bfd *)puVar72[7]" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar72[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar70 = uVar63;" (assignment_expression "uVar70 = uVar63" identifier = identifier) ;) (expression_statement "uVar41 = (uint)pbVar6;" (assignment_expression "uVar41 = (uint)pbVar6" identifier = (cast_expression "(uint)pbVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (do_statement "do {\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          } while (uVar40 != uVar61);" do (compound_statement "{\n            uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);\n            uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);\n            if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;\n            uVar40 = uVar40 + 1;\n            uVar70 = uVar71;\n            uVar41 = uVar64;\n          }" { (expression_statement "uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c);" (assignment_expression "uVar64 = *(uint *)(__ptr[uVar40 * 2] + 0x1c)" identifier = (pointer_expression "*(uint *)(__ptr[uVar40 * 2] + 0x1c)" * (cast_expression "(uint *)(__ptr[uVar40 * 2] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr[uVar40 * 2] + 0x1c)" ( (binary_expression "__ptr[uVar40 * 2] + 0x1c" (subscript_expression "__ptr[uVar40 * 2]" identifier [ (binary_expression "uVar40 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (expression_statement "uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20);" (assignment_expression "uVar71 = *(uint *)(__ptr[uVar40 * 2] + 0x20)" identifier = (pointer_expression "*(uint *)(__ptr[uVar40 * 2] + 0x20)" * (cast_expression "(uint *)(__ptr[uVar40 * 2] + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr[uVar40 * 2] + 0x20)" ( (binary_expression "__ptr[uVar40 * 2] + 0x20" (subscript_expression "__ptr[uVar40 * 2]" identifier [ (binary_expression "uVar40 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (if_statement "if (uVar70 == uVar71 && uVar41 == uVar64) goto LAB_0002a9b9;" if (parenthesized_expression "(uVar70 == uVar71 && uVar41 == uVar64)" ( (binary_expression "uVar70 == uVar71 && uVar41 == uVar64" (binary_expression "uVar70 == uVar71" identifier == identifier) && (binary_expression "uVar41 == uVar64" identifier == identifier)) )) (goto_statement "goto LAB_0002a9b9;" goto statement_identifier ;)) (expression_statement "uVar40 = uVar40 + 1;" (assignment_expression "uVar40 = uVar40 + 1" identifier = (binary_expression "uVar40 + 1" identifier + number_literal)) ;) (expression_statement "uVar70 = uVar71;" (assignment_expression "uVar70 = uVar71" identifier = identifier) ;) (expression_statement "uVar41 = uVar64;" (assignment_expression "uVar41 = uVar64" identifier = identifier) ;) }) while (parenthesized_expression "(uVar40 != uVar61)" ( (binary_expression "uVar40 != uVar61" identifier != identifier) )) ;) (expression_statement "bVar75 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar75 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "(uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar72[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar72[0xc]" 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 "uVar41 = uVar40;" (assignment_expression "uVar41 = uVar40" identifier = identifier) ;) (expression_statement "uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;" (assignment_expression "uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75" identifier = (binary_expression "(uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75" (binary_expression "(uint)puVar72[0xb] >> bVar75" (cast_expression "(uint)puVar72[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar72[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar72[0xc] << 0x20 - bVar75" (subscript_expression "puVar72[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar75" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar41 = 0;\n            uVar70 = uVar40;\n          }" { (expression_statement "uVar41 = 0;" (assignment_expression "uVar41 = 0" identifier = number_literal) ;) (expression_statement "uVar70 = uVar40;" (assignment_expression "uVar70 = uVar40" identifier = identifier) ;) })) (expression_statement "local_6c = (lang_statement_union *)0x0;" (assignment_expression "local_6c = (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 "uVar40 = uVar70 + ((int)pbVar6 - 1U);" (assignment_expression "uVar40 = uVar70 + ((int)pbVar6 - 1U)" identifier = (binary_expression "uVar70 + ((int)pbVar6 - 1U)" identifier + (parenthesized_expression "((int)pbVar6 - 1U)" ( (binary_expression "(int)pbVar6 - 1U" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U);" (assignment_expression "uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U)" identifier = (binary_expression "uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                   (uint)CARRY4(uVar70,(int)pbVar6 - 1U)" (binary_expression "uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0)" (binary_expression "uVar41 + (uVar63 - 1)" identifier + (parenthesized_expression "(uVar63 - 1)" ( (binary_expression "uVar63 - 1" identifier - number_literal) ))) + (call_expression "(uint)(pbVar6 != (bfd *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar6 != (bfd *)0x0)" ( (binary_expression "pbVar6 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) + (cast_expression "(uint)CARRY4(uVar70,(int)pbVar6 - 1U)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar70,(int)pbVar6 - 1U)" identifier (argument_list "(uVar70,(int)pbVar6 - 1U)" ( identifier , (binary_expression "(int)pbVar6 - 1U" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))))) ;) (while_statement "while (local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61) {\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }" while (parenthesized_expression "(local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61)" ( (comma_expression "local_4c = puVar72, local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_4c = puVar72" identifier = identifier) , (comma_expression "local_50 = uVar63, local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_50 = uVar63" identifier = identifier) , (comma_expression "local_54 = pbVar6, local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_54 = pbVar6" identifier = identifier) , (comma_expression "local_58 = uVar70,\n                local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_58 = uVar70" identifier = identifier) , (comma_expression "local_5c = uVar40, local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_5c = uVar40" identifier = identifier) , (comma_expression "local_6c = (lang_statement_union *)((int)local_6c + 1),\n                local_6c != (lang_statement_union *)uVar61" (assignment_expression "local_6c = (lang_statement_union *)((int)local_6c + 1)" identifier = (cast_expression "(lang_statement_union *)((int)local_6c + 1)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "local_6c != (lang_statement_union *)uVar61" identifier != (cast_expression "(lang_statement_union *)uVar61" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))))))) )) (compound_statement "{\n            puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];\n            pbVar6 = (bfd *)puVar72[7];\n            uVar63 = puVar72[8];\n            bVar75 = (byte)opb_shift & 0x1f;\n            uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);\n            uVar41 = uVar40;\n            uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;\n            if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }\n            uVar40 = uVar70 + ((int)pbVar6 - 1U);\n            uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);\n            if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }\n          }" { (expression_statement "puVar72 = (undefined4 *)__ptr[(int)local_6c * 2];" (assignment_expression "puVar72 = (undefined4 *)__ptr[(int)local_6c * 2]" identifier = (cast_expression "(undefined4 *)__ptr[(int)local_6c * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "__ptr[(int)local_6c * 2]" identifier [ (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "pbVar6 = (bfd *)puVar72[7];" (assignment_expression "pbVar6 = (bfd *)puVar72[7]" identifier = (cast_expression "(bfd *)puVar72[7]" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar72[7]" identifier [ number_literal ]))) ;) (expression_statement "uVar63 = puVar72[8];" (assignment_expression "uVar63 = puVar72[8]" identifier = (subscript_expression "puVar72[8]" identifier [ number_literal ])) ;) (expression_statement "bVar75 = (byte)opb_shift & 0x1f;" (assignment_expression "bVar75 = (byte)opb_shift & 0x1f" identifier = (binary_expression "(byte)opb_shift & 0x1f" (cast_expression "(byte)opb_shift" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f);" (assignment_expression "uVar40 = (uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f)" identifier = (binary_expression "(uint)puVar72[0xc] >> ((byte)opb_shift & 0x1f)" (cast_expression "(uint)puVar72[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar72[0xc]" 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 "uVar41 = uVar40;" (assignment_expression "uVar41 = uVar40" identifier = identifier) ;) (expression_statement "uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75;" (assignment_expression "uVar70 = (uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75" identifier = (binary_expression "(uint)puVar72[0xb] >> bVar75 | puVar72[0xc] << 0x20 - bVar75" (binary_expression "(uint)puVar72[0xb] >> bVar75" (cast_expression "(uint)puVar72[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar72[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar72[0xc] << 0x20 - bVar75" (subscript_expression "puVar72[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar75" number_literal - identifier)))) ;) (if_statement "if ((opb_shift & 0x20) != 0) {\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }" if (parenthesized_expression "((opb_shift & 0x20) != 0)" ( (binary_expression "(opb_shift & 0x20) != 0" (parenthesized_expression "(opb_shift & 0x20)" ( (binary_expression "opb_shift & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar41 = 0;\n              uVar70 = uVar40;\n            }" { (expression_statement "uVar41 = 0;" (assignment_expression "uVar41 = 0" identifier = number_literal) ;) (expression_statement "uVar70 = uVar40;" (assignment_expression "uVar70 = uVar40" identifier = identifier) ;) })) (expression_statement "uVar40 = uVar70 + ((int)pbVar6 - 1U);" (assignment_expression "uVar40 = uVar70 + ((int)pbVar6 - 1U)" identifier = (binary_expression "uVar70 + ((int)pbVar6 - 1U)" identifier + (parenthesized_expression "((int)pbVar6 - 1U)" ( (binary_expression "(int)pbVar6 - 1U" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U);" (assignment_expression "uVar70 = uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U)" identifier = (binary_expression "uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0) +\n                     (uint)CARRY4(uVar70,(int)pbVar6 - 1U)" (binary_expression "uVar41 + (uVar63 - 1) + (uint)(pbVar6 != (bfd *)0x0)" (binary_expression "uVar41 + (uVar63 - 1)" identifier + (parenthesized_expression "(uVar63 - 1)" ( (binary_expression "uVar63 - 1" identifier - number_literal) ))) + (call_expression "(uint)(pbVar6 != (bfd *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pbVar6 != (bfd *)0x0)" ( (binary_expression "pbVar6 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) + (cast_expression "(uint)CARRY4(uVar70,(int)pbVar6 - 1U)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar70,(int)pbVar6 - 1U)" identifier (argument_list "(uVar70,(int)pbVar6 - 1U)" ( identifier , (binary_expression "(int)pbVar6 - 1U" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))))) ;) (if_statement "if ((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }" if (parenthesized_expression "((__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))))" ( (binary_expression "(__ptr[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" (parenthesized_expression "(__ptr[(int)local_6c * 2 + 1] == 0)" ( (binary_expression "__ptr[(int)local_6c * 2 + 1] == 0" (subscript_expression "__ptr[(int)local_6c * 2 + 1]" identifier [ (binary_expression "(int)local_6c * 2 + 1" (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" ( (parenthesized_expression "(uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))" ( (binary_expression "uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" (binary_expression "uVar63 <= local_58 && (uint)(local_5c < pbVar6) <= local_58 - uVar63" (binary_expression "uVar63 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < pbVar6) <= local_58 - uVar63" (call_expression "(uint)(local_5c < pbVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < pbVar6)" ( (binary_expression "local_5c < pbVar6" identifier < identifier) ))) <= (binary_expression "local_58 - uVar63" identifier - identifier))) || (parenthesized_expression "(local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" ( (binary_expression "local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 < local_50" identifier < identifier) || (binary_expression "local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 - local_50" identifier - identifier) < (call_expression "(uint)(local_5c < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_54)" ( (binary_expression "local_5c < local_54" identifier < identifier) ))))) ))) )) ))) )) (compound_statement "{\n              uVar66 = *puVar72;\n              uVar33 = *local_4c;\n              pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);\n              einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);\n            }" { (expression_statement "uVar66 = *puVar72;" (assignment_expression "uVar66 = *puVar72" identifier = (pointer_expression "*puVar72" * identifier)) ;) (expression_statement "uVar33 = *local_4c;" (assignment_expression "uVar33 = *local_4c" identifier = (pointer_expression "*local_4c" * identifier)) ;) (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"\n                                          ,5);" (assignment_expression "pcVar26 = (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(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58);" (call_expression "einfo(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58)" identifier (argument_list "(pcVar26,uVar66,pbVar6,uVar63,uVar40,uVar70,uVar33,local_54,local_50,local_5c,\n                    local_58)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0002a9b9:\n          free(__ptr);" statement_identifier : (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;)) (for_statement "for (pmVar57 = lang_memory_region_list; prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0; pmVar57 = pmVar57->next) {\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }" for ( (assignment_expression "pmVar57 = lang_memory_region_list" identifier = identifier) ; (comma_expression "prVar19 = require_defined_symbol_list,\n              pmVar57 != (lang_memory_region_type *)0x0" (assignment_expression "prVar19 = require_defined_symbol_list" identifier = identifier) , (binary_expression "pmVar57 != (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 "pmVar57 = pmVar57->next" identifier = (field_expression "pmVar57->next" identifier -> field_identifier)) ) (compound_statement "{\n            if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }\n          }" { (if_statement "if (pmVar57->had_full_message != 0) {\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }" if (parenthesized_expression "(pmVar57->had_full_message != 0)" ( (binary_expression "pmVar57->had_full_message != 0" (field_expression "pmVar57->had_full_message" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              pcVar26 = (pmVar57->name_list).name;\n              iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);\n              pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);\n              einfo(pcVar30,pcVar26,iVar25);\n            }" { (expression_statement "pcVar26 = (pmVar57->name_list).name;" (assignment_expression "pcVar26 = (pmVar57->name_list).name" identifier = (field_expression "(pmVar57->name_list).name" (parenthesized_expression "(pmVar57->name_list)" ( (field_expression "pmVar57->name_list" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin);" (assignment_expression "iVar25 = (int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin)" identifier = (binary_expression "(int)pmVar57->current - ((int)pmVar57->length + (int)pmVar57->origin)" (cast_expression "(int)pmVar57->current" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar57->current" identifier -> field_identifier)) - (parenthesized_expression "((int)pmVar57->length + (int)pmVar57->origin)" ( (binary_expression "(int)pmVar57->length + (int)pmVar57->origin" (cast_expression "(int)pmVar57->length" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar57->length" identifier -> field_identifier)) + (cast_expression "(int)pmVar57->origin" ( (type_descriptor "int" primitive_type) ) (field_expression "pmVar57->origin" identifier -> field_identifier))) )))) ;) (expression_statement "pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,5);" (assignment_expression "pcVar30 = (char *)dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,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",iVar25,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",iVar25,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                           "%X%P: region `%s\' overflowed by %lu bytes\n",iVar25,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(pcVar30,pcVar26,iVar25);" (call_expression "einfo(pcVar30,pcVar26,iVar25)" identifier (argument_list "(pcVar30,pcVar26,iVar25)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x000296eb;" goto statement_identifier ;) })) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "prVar19 = require_defined_symbol_list;" (assignment_expression "prVar19 = require_defined_symbol_list" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x000296eb:\n  for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }" statement_identifier : (for_statement "for (; prVar19 != (require_defined_symbol *)0x0; prVar19 = prVar19->next) {\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }" for ( ; (binary_expression "prVar19 != (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 "prVar19 = prVar19->next" identifier = (field_expression "prVar19->next" identifier -> field_identifier)) ) (compound_statement "{\n    iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);\n    if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }\n  }" { (expression_statement "iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1);" (assignment_expression "iVar25 = bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(link_info.hash,prVar19->name,0,0,1)" identifier (argument_list "(link_info.hash,prVar19->name,0,0,1)" ( (field_expression "link_info.hash" identifier . field_identifier) , (field_expression "prVar19->name" identifier -> field_identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))) {\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }" if (parenthesized_expression "((iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U)))" ( (binary_expression "(iVar25 == 0) || (1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))" (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar25 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar25 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar25 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar25 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar25 + 0xc) - 3U" (pointer_expression "*(char *)(iVar25 + 0xc)" * (cast_expression "(char *)(iVar25 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xc)" ( (binary_expression "iVar25 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      pcVar26 = prVar19->name;\n      pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      einfo(pcVar30,pcVar26);\n    }" { (expression_statement "pcVar26 = prVar19->name;" (assignment_expression "pcVar26 = prVar19->name" identifier = (field_expression "prVar19->name" identifier -> field_identifier)) ;) (expression_statement "pcVar30 = (char *)dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar25 = entry_from_cmdline;" (assignment_expression "iVar25 = entry_from_cmdline" identifier = identifier) ;) (if_statement "if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {\n    iVar25 = 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    iVar25 = 1;\n  }" { (expression_statement "iVar25 = 1;" (assignment_expression "iVar25 = 1" identifier = number_literal) ;) })) (if_statement "if (((link_info._0_1_ & 0x43) == 0x42) && (entry_from_cmdline == 0 && undef_from_cmdline == 0)) {\n    pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar26);\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    pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);\n    einfo(pcVar26);\n  }" { (expression_statement "pcVar26 = (char *)dcgettext(0,\n                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"\n                                ,5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "einfo(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) })) (if_statement "if (entry_symbol.name == (char *)0x0) {\n    entry_symbol.name = entry_symbol_default;\n    iVar25 = 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    iVar25 = 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 "iVar25 = 0;" (assignment_expression "iVar25 = 0" identifier = number_literal) ;) })) (expression_statement "iVar39 = bfd_link_hash_lookup(link_info.hash,entry_symbol.name,0,0,1);" (assignment_expression "iVar39 = 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 ((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)) {\n    iVar29 = *(int *)(iVar39 + 0x14);\n    iVar14 = *(int *)(iVar29 + 0x54);\n    if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" if (parenthesized_expression "((iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar39 != 0) && ((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar39 != 0)" ( (binary_expression "iVar39 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar39 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar39 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar39 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar39 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar39 + 0xc) - 3U" (pointer_expression "*(char *)(iVar39 + 0xc)" * (cast_expression "(char *)(iVar39 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0xc)" ( (binary_expression "iVar39 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar29 = *(int *)(iVar39 + 0x14);\n    iVar14 = *(int *)(iVar29 + 0x54);\n    if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" { (expression_statement "iVar29 = *(int *)(iVar39 + 0x14);" (assignment_expression "iVar29 = *(int *)(iVar39 + 0x14)" identifier = (pointer_expression "*(int *)(iVar39 + 0x14)" * (cast_expression "(int *)(iVar39 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x14)" ( (binary_expression "iVar39 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = *(int *)(iVar29 + 0x54);" (assignment_expression "iVar14 = *(int *)(iVar29 + 0x54)" identifier = (pointer_expression "*(int *)(iVar29 + 0x54)" * (cast_expression "(int *)(iVar29 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x54)" ( (binary_expression "iVar29 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 != 0) {\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);\n      iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));\n      if (iVar25 != 0) {\n        return;\n      }\n      pcVar26 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" { (expression_statement "uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18);" (assignment_expression "uVar61 = *(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18)" identifier = (binary_expression "*(uint *)(iVar29 + 0x4c) + *(uint *)(iVar39 + 0x18)" (pointer_expression "*(uint *)(iVar29 + 0x4c)" * (cast_expression "(uint *)(iVar29 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x4c)" ( (binary_expression "iVar29 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar39 + 0x18)" * (cast_expression "(uint *)(iVar39 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x18)" ( (binary_expression "iVar39 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)));" (assignment_expression "iVar25 = bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)))" identifier = (call_expression "bfd_set_start_address\n                         (link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)))" identifier (argument_list "(link_info.output_bfd,uVar61 + *(uint *)(iVar14 + 0x1c),\n                          *(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c)))" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (binary_expression "uVar61 + *(uint *)(iVar14 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar14 + 0x1c)" * (cast_expression "(uint *)(iVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20) + (uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c))" (binary_expression "*(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18)) +\n                          *(int *)(iVar14 + 0x20)" (binary_expression "*(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c) +\n                          (uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18))" (binary_expression "*(int *)(iVar29 + 0x50) + *(int *)(iVar39 + 0x1c)" (pointer_expression "*(int *)(iVar29 + 0x50)" * (cast_expression "(int *)(iVar29 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x50)" ( (binary_expression "iVar29 + 0x50" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar39 + 0x1c)" * (cast_expression "(int *)(iVar39 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x1c)" ( (binary_expression "iVar39 + 0x1c" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18))" identifier (argument_list "(*(uint *)(iVar29 + 0x4c),*(uint *)(iVar39 + 0x18))" ( (pointer_expression "*(uint *)(iVar29 + 0x4c)" * (cast_expression "(uint *)(iVar29 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar29 + 0x4c)" ( (binary_expression "iVar29 + 0x4c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar39 + 0x18)" * (cast_expression "(uint *)(iVar39 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x18)" ( (binary_expression "iVar39 + 0x18" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(iVar14 + 0x20)" * (cast_expression "(int *)(iVar14 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x20)" ( (binary_expression "iVar14 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar61,*(uint *)(iVar14 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar61,*(uint *)(iVar14 + 0x1c))" identifier (argument_list "(uVar61,*(uint *)(iVar14 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar14 + 0x1c)" * (cast_expression "(uint *)(iVar14 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x1c)" ( (binary_expression "iVar14 + 0x1c" identifier + number_literal) )))) ))))) )))) ;) (if_statement "if (iVar25 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar26 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar26 = "%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_00029b59;" goto statement_identifier ;) })) })) (expression_statement "uVar77 = bfd_scan_vma(entry_symbol.name,&power,0);" (assignment_expression "uVar77 = 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    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar26 = entry_symbol.name;\n    if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }\n    uVar66 = *(undefined4 *)(iVar39 + 0x1c);\n    uVar33 = *(undefined4 *)(iVar39 + 0x20);\n    uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 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    iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);\n    pcVar26 = entry_symbol.name;\n    if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }\n    uVar66 = *(undefined4 *)(iVar39 + 0x1c);\n    uVar33 = *(undefined4 *)(iVar39 + 0x20);\n    uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }\n  }" { (expression_statement "iVar39 = bfd_get_section_by_name(link_info.output_bfd,entry_section);" (assignment_expression "iVar39 = 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 "pcVar26 = entry_symbol.name;" (assignment_expression "pcVar26 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;) (if_statement "if (iVar39 == 0) {\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }" if (parenthesized_expression "(iVar39 == 0)" ( (binary_expression "iVar39 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar25 == 0) {\n        return;\n      }\n      pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      pcVar30 = entry_symbol.name;\n      pcVar26 = (char *)dcgettext(0,pcVar26,5);\n      einfo(pcVar26,pcVar30);\n      return;\n    }" { (if_statement "if (iVar25 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar26 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar26 = "%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_00029b59:\n      pcVar30 = entry_symbol.name;" statement_identifier : (expression_statement "pcVar30 = entry_symbol.name;" (assignment_expression "pcVar30 = entry_symbol.name" identifier = (field_expression "entry_symbol.name" identifier . field_identifier)) ;)) (expression_statement "pcVar26 = (char *)dcgettext(0,pcVar26,5);" (assignment_expression "pcVar26 = (char *)dcgettext(0,pcVar26,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar26,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar26,5)" identifier (argument_list "(0,pcVar26,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "einfo(pcVar26,pcVar30);" (call_expression "einfo(pcVar26,pcVar30)" identifier (argument_list "(pcVar26,pcVar30)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar66 = *(undefined4 *)(iVar39 + 0x1c);" (assignment_expression "uVar66 = *(undefined4 *)(iVar39 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar39 + 0x1c)" * (cast_expression "(undefined4 *)(iVar39 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x1c)" ( (binary_expression "iVar39 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar33 = *(undefined4 *)(iVar39 + 0x20);" (assignment_expression "uVar33 = *(undefined4 *)(iVar39 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar39 + 0x20)" * (cast_expression "(undefined4 *)(iVar39 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x20)" ( (binary_expression "iVar39 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar77 = *(undefined8 *)(iVar39 + 0x1c);" (assignment_expression "uVar77 = *(undefined8 *)(iVar39 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar39 + 0x1c)" * (cast_expression "(undefined8 *)(iVar39 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x1c)" ( (binary_expression "iVar39 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );\n      einfo(pcVar30,pcVar26,uVar66,uVar33);\n      uVar77 = *(undefined8 *)(iVar39 + 0x1c);\n    }" { (expression_statement "pcVar30 = (char *)dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5\n                                 );" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26,uVar66,uVar33);" (call_expression "einfo(pcVar30,pcVar26,uVar66,uVar33)" identifier (argument_list "(pcVar30,pcVar26,uVar66,uVar33)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar77 = *(undefined8 *)(iVar39 + 0x1c);" (assignment_expression "uVar77 = *(undefined8 *)(iVar39 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar39 + 0x1c)" * (cast_expression "(undefined8 *)(iVar39 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar39 + 0x1c)" ( (binary_expression "iVar39 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77);" (assignment_expression "iVar25 = bfd_set_start_address(link_info.output_bfd,uVar77)" identifier = (call_expression "bfd_set_start_address(link_info.output_bfd,uVar77)" identifier (argument_list "(link_info.output_bfd,uVar77)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier )))) ;) (if_statement "if (iVar25 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar26 = (char *)dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "pcVar26 = (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(pcVar26);" (call_expression "einfo(pcVar26)" identifier (argument_list "(pcVar26)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_00028dd0:\n  pcVar26 = (pmVar57->name_list).name;" statement_identifier : (expression_statement "pcVar26 = (pmVar57->name_list).name;" (assignment_expression "pcVar26 = (pmVar57->name_list).name" identifier = (field_expression "(pmVar57->name_list).name" (parenthesized_expression "(pmVar57->name_list)" ( (field_expression "pmVar57->name_list" identifier -> field_identifier) )) . field_identifier)) ;)) (expression_statement "pcVar30 = (char *)dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "pcVar30 = (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(pcVar30,pcVar26);" (call_expression "einfo(pcVar30,pcVar26)" identifier (argument_list "(pcVar30,pcVar26)" ( identifier , identifier ))) ;) (expression_statement "pmVar57 = pmVar57->next;" (assignment_expression "pmVar57 = pmVar57->next" identifier = (field_expression "pmVar57->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x00028c51;" goto statement_identifier ;) (labeled_statement "code_r0x000290dc:\n  (*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);" statement_identifier : (expression_statement "(*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info);" (call_expression "(*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(pbVar54,&link_info)" (parenthesized_expression "(*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms)" ( (pointer_expression "*((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms" * (field_expression "((plVar49->input_statement).the_bfd)->xvec->_bfd_link_just_syms" (field_expression "((plVar49->input_statement).the_bfd)->xvec" (parenthesized_expression "((plVar49->input_statement).the_bfd)" ( (field_expression "(plVar49->input_statement).the_bfd" (parenthesized_expression "(plVar49->input_statement)" ( (field_expression "plVar49->input_statement" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(pbVar54,&link_info)" ( identifier , (pointer_expression "&link_info" & identifier) ))) ;)) (expression_statement "pbVar54 = pbVar54->next;" (assignment_expression "pbVar54 = pbVar54->next" identifier = (field_expression "pbVar54->next" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x000290b4;" goto statement_identifier ;) (labeled_statement "code_r0x00029557:\n  plVar58 = (plVar49->wild_statement).children.head;" statement_identifier : (expression_statement "plVar58 = (plVar49->wild_statement).children.head;" (assignment_expression "plVar58 = (plVar49->wild_statement).children.head" identifier = (field_expression "(plVar49->wild_statement).children.head" (field_expression "(plVar49->wild_statement).children" (parenthesized_expression "(plVar49->wild_statement)" ( (field_expression "plVar49->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "pcVar26 = (char *)dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "pcVar26 = (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(pcVar26,plVar58,pbVar9);" (call_expression "einfo(pcVar26,plVar58,pbVar9)" identifier (argument_list "(pcVar26,plVar58,pbVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "paVar47 = (asection *)paVar47->name;" (assignment_expression "paVar47 = (asection *)paVar47->name" identifier = (cast_expression "(asection *)paVar47->name" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "paVar47->name" identifier -> field_identifier))) ;) (expression_statement "pplVar46 = extraout_ECX_00;" (assignment_expression "pplVar46 = extraout_ECX_00" identifier = identifier) ;) (goto_statement "goto joined_r0x0002951b;" goto statement_identifier ;) })))
(translation_unit "void FUN_00028810(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}\n\n" (function_definition "void FUN_00028810(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" primitive_type (function_declarator "FUN_00028810(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "undefined4 uVar14;" type_identifier identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * 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 "uint uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "int *piVar32;" primitive_type (pointer_declarator "*piVar32" * identifier) ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "uint uVar34;" type_identifier identifier ;) (declaration "uint uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "bool bVar37;" primitive_type identifier ;) (declaration "bool bVar38;" primitive_type identifier ;) (declaration "byte bVar39;" type_identifier identifier ;) (declaration "undefined8 uVar40;" type_identifier identifier ;) (declaration "int *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "void *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "undefined4 *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier 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 "bVar39 = 0;" (assignment_expression "bVar39 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x28819;" (assignment_expression "uStack_14 = 0x28819" identifier = number_literal) ;) (if_statement "if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }" if (parenthesized_expression "(DAT_00093d14 != 0)" ( (binary_expression "DAT_00093d14 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0001ea90();\n  }" { (expression_statement "FUN_0001ea90();" (call_expression "FUN_0001ea90()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" identifier = identifier) ;) (expression_statement "FUN_00021b90(FUN_00024b50,DAT_000938a8);" (call_expression "FUN_00021b90(FUN_00024b50,DAT_000938a8)" identifier (argument_list "(FUN_00024b50,DAT_000938a8)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001f3d0();" (call_expression "FUN_0001f3d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000314e0();" (call_expression "FUN_000314e0()" identifier (argument_list "()" ( ))) ;) (for_statement "for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }" for ( (assignment_expression "puVar15 = DAT_000937f4" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n    FUN_0001e860();\n  }" { (expression_statement "FUN_0001e860();" (call_expression "FUN_0001e860()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = bfd_section_already_linked_table_init();" (assignment_expression "iVar7 = bfd_section_already_linked_table_init()" identifier = (call_expression "bfd_section_already_linked_table_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" identifier = identifier) ;) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar27 = DAT_00093c28;" (assignment_expression "piVar27 = DAT_00093c28" identifier = identifier) ;) (expression_statement "piVar23 = DAT_00093c24;" (assignment_expression "piVar23 = DAT_00093c24" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c81 & 2) != 0)" ( (binary_expression "(DAT_00093c81 & 2) != 0" (parenthesized_expression "(DAT_00093c81 & 2)" ( (binary_expression "DAT_00093c81 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar7 = *(int *)PTR_DAT_00093338;" (assignment_expression "iVar7 = *(int *)PTR_DAT_00093338" identifier = (pointer_expression "*(int *)PTR_DAT_00093338" * (cast_expression "(int *)PTR_DAT_00093338" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar32 = *(int **)(PTR_DAT_00093338 + 4);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_00093338 + 4)" identifier = (pointer_expression "*(int **)(PTR_DAT_00093338 + 4)" * (cast_expression "(int **)(PTR_DAT_00093338 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00093338 + 4)" ( (binary_expression "PTR_DAT_00093338 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = FUN_00036670();" (assignment_expression "iVar11 = FUN_00036670()" identifier = (call_expression "FUN_00036670()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" { (expression_statement "uVar8 = FUN_00035fe0();" (assignment_expression "uVar8 = FUN_00035fe0()" identifier = (call_expression "FUN_00035fe0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" identifier = identifier) ;) (if_statement "if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(*(int *)PTR_DAT_00093338 != iVar7)" ( (binary_expression "*(int *)PTR_DAT_00093338 != iVar7" (pointer_expression "*(int *)PTR_DAT_00093338" * (cast_expression "(int *)PTR_DAT_00093338" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar16 = *(int **)(puVar17 + 4);" (assignment_expression "piVar16 = *(int **)(puVar17 + 4)" identifier = (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *piVar32;" (assignment_expression "iVar7 = *piVar32" identifier = (pointer_expression "*piVar32" * identifier)) ;) (expression_statement "*(int **)(puVar17 + 4) = piVar32;" (assignment_expression "*(int **)(puVar17 + 4) = piVar32" (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" * identifier) = number_literal) ;) (if_statement "if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_000937fc != piVar24)" ( (binary_expression "DAT_000937fc != piVar24" identifier != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" 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_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (if_statement "if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" if (parenthesized_expression "(DAT_00093c24 != piVar23)" ( (binary_expression "DAT_00093c24 != piVar23" identifier != identifier) )) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "piVar23 = DAT_00093c28;" (assignment_expression "piVar23 = DAT_00093c28" identifier = identifier) ;) (expression_statement "iVar11 = *piVar27;" (assignment_expression "iVar11 = *piVar27" identifier = (pointer_expression "*piVar27" * identifier)) ;) (expression_statement "DAT_00093c28 = piVar27;" (assignment_expression "DAT_00093c28 = piVar27" identifier = identifier) ;) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" * identifier) = number_literal) ;) (expression_statement "piVar26 = DAT_000937fc;" (assignment_expression "piVar26 = DAT_000937fc" identifier = identifier) ;) (expression_statement "piVar27 = DAT_00093c24;" (assignment_expression "piVar27 = DAT_00093c24" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" { (for_statement "for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" for ( ; (comma_expression "DAT_00093840 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;\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_00029ef1;\n          break;\n        }" { (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;" 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_00029ef1;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }" if (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0))" ( (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 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] + 0x8c) == 0)" ( (binary_expression "*(int *)(piVar26[4] + 0x8c) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x8c)" * (cast_expression "(int *)(piVar26[4] + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar26[4] + 0x8c)" ( (binary_expression "piVar26[4] + 0x8c" (subscript_expression "piVar26[4]" identifier [ number_literal ]) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n          DAT_00093840 = piVar26;\n        }" { (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" identifier = identifier) ;) })) (expression_statement "piVar27 = DAT_00093840;" (assignment_expression "piVar27 = DAT_00093840" identifier = identifier) ;) })) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) (if_statement "if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" if (parenthesized_expression "(DAT_00093840 == (int *)0x0)" ( (binary_expression "DAT_00093840 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c32)" identifier (argument_list "("../../ld/ldlang.c",0x1c32)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) })) (labeled_statement "LAB_00029ef1:\n      DAT_00093840 = piVar26;" statement_identifier : (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" identifier = identifier) ;)) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" identifier = identifier) ;) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" identifier = identifier) ;) (expression_statement "*piVar16 = *DAT_00093840;" (assignment_expression "*piVar16 = *DAT_00093840" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*DAT_00093840" * identifier)) ;) (expression_statement "*piVar26 = iVar7;" (assignment_expression "*piVar26 = iVar7" (pointer_expression "*piVar26" * identifier) = identifier) ;) (if_statement "if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }" if (parenthesized_expression "(piVar26 == *(int **)(puVar17 + 4))" ( (binary_expression "piVar26 == *(int **)(puVar17 + 4)" identifier == (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 4" identifier + number_literal) ))))) )) (compound_statement "{\n        *(int **)(puVar17 + 4) = piVar16;\n      }" { (expression_statement "*(int **)(puVar17 + 4) = piVar16;" (assignment_expression "*(int **)(puVar17 + 4) = piVar16" (pointer_expression "*(int **)(puVar17 + 4)" * (cast_expression "(int **)(puVar17 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar17 + 4)" ( (binary_expression "puVar17 + 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] = iVar11;" (assignment_expression "piVar26[7] = iVar11" (subscript_expression "piVar26[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar27 = DAT_00093800;" (assignment_expression "piVar27 = DAT_00093800" identifier = identifier) ;) (if_statement "if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }" if (parenthesized_expression "(DAT_00093c28 == piVar26 + 7)" ( (binary_expression "DAT_00093c28 == piVar26 + 7" identifier == (binary_expression "piVar26 + 7" identifier + number_literal)) )) (compound_statement "{\n        DAT_00093c28 = piVar23;\n      }" { (expression_statement "DAT_00093c28 = piVar23;" (assignment_expression "DAT_00093c28 = piVar23" identifier = identifier) ;) })) (if_statement "if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\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        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }" { (expression_statement "*piVar32 = (int)DAT_000937fc;" (assignment_expression "*piVar32 = (int)DAT_000937fc" (pointer_expression "*piVar32" * identifier) = (cast_expression "(int)DAT_000937fc" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "DAT_000937fc = piVar24;" (assignment_expression "DAT_000937fc = piVar24" identifier = identifier) ;) (if_statement "if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }" if (parenthesized_expression "((int **)piVar27 != &DAT_000937fc)" ( (binary_expression "(int **)piVar27 != &DAT_000937fc" (cast_expression "(int **)piVar27" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) != (pointer_expression "&DAT_000937fc" & identifier)) )) (compound_statement "{\n          piVar32 = DAT_00093800;\n        }" { (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" identifier = identifier) ;) })) }) (else_clause "else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" else (compound_statement "{\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" { (expression_statement "*piVar32 = piVar26[6];" (assignment_expression "*piVar32 = piVar26[6]" (pointer_expression "*piVar32" * 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          piVar32 = DAT_00093800;\n        }" if (parenthesized_expression "(piVar27 != piVar26 + 6)" ( (binary_expression "piVar27 != piVar26 + 6" identifier != (binary_expression "piVar26 + 6" identifier + number_literal)) )) (compound_statement "{\n          piVar32 = DAT_00093800;\n        }" { (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" identifier = identifier) ;) })) }))) (expression_statement "DAT_00093800 = piVar32;" (assignment_expression "DAT_00093800 = piVar32" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" identifier (argument_list "()" ( ))) ;) (if_statement "if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" if (parenthesized_expression "(DAT_000937fc != piVar24)" ( (binary_expression "DAT_000937fc != piVar24" identifier != identifier) )) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" identifier (argument_list "("../../ld/ldlang.c",0x1baf)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar7 = *piVar26;" (assignment_expression "iVar7 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) ;) (expression_statement "DAT_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" identifier = identifier) ;) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" * identifier) = number_literal) ;) (while_statement "while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" { (expression_statement "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar7 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar10 = iVar11;\n        }" { (expression_statement "iVar10 = iVar11;" (assignment_expression "iVar10 = iVar11" identifier = identifier) ;) })) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }" if (parenthesized_expression "(DAT_00093c24 != (int *)0x0)" ( (binary_expression "DAT_00093c24 != (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_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\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_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar26 = DAT_00093c24;" (assignment_expression "piVar26 = DAT_00093c24" identifier = identifier) ;) (do_statement "do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);" do (compound_statement "{\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          }" { (while_statement "while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" while (parenthesized_expression "(piVar26[4] == iVar10)" ( (binary_expression "piVar26[4] == iVar10" (subscript_expression "piVar26[4]" identifier [ number_literal ]) == identifier) )) (compound_statement "{\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" { (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                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\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 "iVar10 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar10 = *(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_0002a051;" 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_6c = piVar23;" (assignment_expression "local_6c = piVar23" identifier = identifier) ;) (if_statement "if (piVar26 == (int *)0x0) goto LAB_0002a010;" 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_0002a010;" goto statement_identifier ;)) })) (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 ]))) ;) }) 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_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" statement_identifier : (if_statement "if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" if (parenthesized_expression "(local_6c != (int *)0x0)" ( (binary_expression "local_6c != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar24 = local_6c;\n          }" { (expression_statement "piVar24 = local_6c;" (assignment_expression "piVar24 = local_6c" identifier = identifier) ;) }))) })) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" identifier = (binary_expression "piVar24 + 6" identifier + number_literal)) ;) (for_statement "for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" for ( (assignment_expression "iVar10 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ; (binary_expression "iVar10 != 0" identifier != number_literal) ; (assignment_expression "iVar10 = *(int *)(iVar10 + 0x18)" identifier = (pointer_expression "*(int *)(iVar10 + 0x18)" * (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) ))))) ) (compound_statement "{\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" { (if_statement "if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }" if (parenthesized_expression "(((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0))" ( (binary_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" (parenthesized_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0)" ( (binary_expression "(*(byte *)(iVar10 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 0x25) & 0x40)" ( (binary_expression "*(byte *)(iVar10 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar10 + 0x25)" * (cast_expression "(byte *)(iVar10 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x25)" ( (binary_expression "iVar10 + 0x25" identifier + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" ( (binary_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar10 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar10 + 0x10)" * (cast_expression "(int *)(iVar10 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x10)" ( (binary_expression "iVar10 + 0x10" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n            iVar10 = *piVar24;\n            break;\n          }" { (expression_statement "iVar10 = *piVar24;" (assignment_expression "iVar10 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (break_statement "break;" break ;) })) (expression_statement "piVar24 = (int *)(iVar10 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar10 + 0x18)" identifier = (cast_expression "(int *)(iVar10 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x18)" ( (binary_expression "iVar10 + 0x18" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);" statement_identifier : (expression_statement "local_6c = (int *)(iVar7 + 0x18);" (assignment_expression "local_6c = (int *)(iVar7 + 0x18)" identifier = (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) ;)) (if_statement "if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }" { (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x18)" identifier = (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = iVar11;" (assignment_expression "iVar7 = iVar11" identifier = identifier) ;) }) (else_clause "else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" else (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x18)" identifier = (pointer_expression "*(int *)(iVar7 + 0x18)" * (cast_expression "(int *)(iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }" { (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" while (parenthesized_expression "(iVar11 == iVar28)" ( (binary_expression "iVar11 == iVar28" identifier == identifier) )) (compound_statement "{\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" { (expression_statement "local_6c = (int *)(iVar25 + 0x18);" (assignment_expression "local_6c = (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) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" * (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" ( (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" * identifier) = identifier) ;) (expression_statement "iVar7 = *local_6c;" (assignment_expression "iVar7 = *local_6c" identifier = (pointer_expression "*local_6c" * identifier)) ;) (expression_statement "*local_6c = iVar10;" (assignment_expression "*local_6c = iVar10" (pointer_expression "*local_6c" * identifier) = identifier) ;) (if_statement "if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" if (parenthesized_expression "(*(int *)(iVar11 + 0xa4) != 0)" ( (binary_expression "*(int *)(iVar11 + 0xa4) != 0" (pointer_expression "*(int *)(iVar11 + 0xa4)" * (cast_expression "(int *)(iVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xa4)" ( (binary_expression "iVar11 + 0xa4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" { (expression_statement "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;" (assignment_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6" (pointer_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" * (cast_expression "(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar11 + 0xa4) + 0x18)" ( (binary_expression "*(int *)(iVar11 + 0xa4) + 0x18" (pointer_expression "*(int *)(iVar11 + 0xa4)" * (cast_expression "(int *)(iVar11 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xa4)" ( (binary_expression "iVar11 + 0xa4" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "local_6c + -6" identifier + number_literal)) ;) })) }))) })) })) })) (if_statement "if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" if (parenthesized_expression "(DAT_00093cc8 != (undefined4 *)0x0)" ( (binary_expression "DAT_00093cc8 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c67)" identifier (argument_list "("../../ld/ldlang.c",0x1c67)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "DAT_00093cc8 = &DAT_000937f4;" (assignment_expression "DAT_00093cc8 = &DAT_000937f4" identifier = (pointer_expression "&DAT_000937f4" & identifier)) ;) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" if (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" ( (binary_expression "DAT_000937f8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" { (expression_statement "DAT_00093cc8 = DAT_000937f4;" (assignment_expression "DAT_00093cc8 = DAT_000937f4" identifier = identifier) ;) (if_statement "if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }" if (parenthesized_expression "(PTR_s_start_00093340 != (undefined *)0x0)" ( (binary_expression "PTR_s_start_00093340 != (undefined *)0x0" identifier != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00021990();\n    }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) })) (if_statement "if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }" if (parenthesized_expression "(DAT_00093cd0 != 0)" ( (binary_expression "DAT_00093cd0 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00021990();\n  }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }" if (parenthesized_expression "(DAT_00093cd4 != 0)" ( (binary_expression "DAT_00093cd4 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_00021990();\n  }" { (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000313f0();" (call_expression "FUN_000313f0()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" if (parenthesized_expression "((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0))" ( (binary_expression "(DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00093dd0 != 0)" ( (binary_expression "DAT_00093dd0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00093870 != (undefined4 *)0x0)" ( (binary_expression "DAT_00093870 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" { (expression_statement "uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar8 = 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_00032c30(uVar8);" (call_expression "FUN_00032c30(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (for_statement "for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" for ( (assignment_expression "puVar15 = DAT_00093870" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" { (expression_statement "FUN_00032c30(&DAT_0004de8a,puVar15[1]);" (call_expression "FUN_00032c30(&DAT_0004de8a,puVar15[1])" identifier (argument_list "(&DAT_0004de8a,puVar15[1])" ( (pointer_expression "&DAT_0004de8a" & identifier) , (subscript_expression "puVar15[1]" identifier [ number_literal ]) ))) ;) (expression_statement "sVar9 = strlen((char *)puVar15[1]);" (assignment_expression "sVar9 = strlen((char *)puVar15[1])" identifier = (call_expression "strlen((char *)puVar15[1])" identifier (argument_list "((char *)puVar15[1])" ( (cast_expression "(char *)puVar15[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ])) )))) ;) (if_statement "if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" if (parenthesized_expression "(0x1c < sVar9)" ( (binary_expression "0x1c < sVar9" number_literal < identifier) )) (compound_statement "{\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" { (expression_statement "FUN_00031ce0();" (call_expression "FUN_00031ce0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" identifier = number_literal) ;) })) (do_statement "do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);" do (compound_statement "{\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      }" { (expression_statement "FUN_00031cb0();" (call_expression "FUN_00031cb0()" identifier (argument_list "()" ( ))) ;) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" identifier = (binary_expression "sVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(sVar9 != 0x1e)" ( (binary_expression "sVar9 != 0x1e" identifier != number_literal) )) ;) (if_statement "if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" if (parenthesized_expression "(puVar15[2] != 0)" ( (binary_expression "puVar15[2] != 0" (subscript_expression "puVar15[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" { (expression_statement "FUN_00032c30(&DAT_0004e11a,puVar15[2]);" (call_expression "FUN_00032c30(&DAT_0004e11a,puVar15[2])" identifier (argument_list "(&DAT_0004e11a,puVar15[2])" ( (pointer_expression "&DAT_0004e11a" & identifier) , (subscript_expression "puVar15[2]" identifier [ number_literal ]) ))) ;) })) (expression_statement "FUN_00032c30("(%pT)\n",puVar15[3]);" (call_expression "FUN_00032c30("(%pT)\n",puVar15[3])" identifier (argument_list "("(%pT)\n",puVar15[3])" ( (string_literal ""(%pT)\n"" " string_content escape_sequence ") , (subscript_expression "puVar15[3]" identifier [ number_literal ]) ))) ;) })) })) (expression_statement "bfd_section_already_linked_table_free();" (call_expression "bfd_section_already_linked_table_free()" identifier (argument_list "()" ( ))) ;) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" for ( (assignment_expression "piVar24 = DAT_000937fc" 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 "{\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" { (labeled_statement "LAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" statement_identifier : (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\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 "{\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" { (labeled_statement "LAB_00028ac0:\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 ]))) ;)) (labeled_statement "joined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;" statement_identifier : (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 ;))) (goto_statement "goto LAB_00028a10;" goto statement_identifier ;) }))) (expression_statement "iVar7 = piVar24[4];" (assignment_expression "iVar7 = piVar24[4]" identifier = (subscript_expression "piVar24[4]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);" (assignment_expression "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" identifier = (call_expression "bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" identifier (argument_list "(iVar7,DAT_00093cb4,DAT_00093d3c)" ( identifier , identifier , identifier )))) ;) (expression_statement "iVar11 = DAT_00093cb4;" (assignment_expression "iVar11 = DAT_00093cb4" identifier = identifier) ;) (if_statement "if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" if (parenthesized_expression "(((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0))" ( (binary_expression "((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)" (parenthesized_expression "((DAT_00093c80 & 3) == 2)" ( (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "((DAT_00093c82._1_1_ & 8) != 0)" ( (binary_expression "(DAT_00093c82._1_1_ & 8) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 8)" ( (binary_expression "DAT_00093c82._1_1_ & 8" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" { (if_statement "if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }" { (if_statement "if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;" if (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" * (cast_expression "(byte *)(iVar7 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" else (compound_statement "{\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" { (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" identifier = (pointer_expression "*(undefined4 **)(iVar7 + 4)" * (cast_expression "(undefined4 **)(iVar7 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;" if (parenthesized_expression "((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))" ( (binary_expression "(puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" (parenthesized_expression "(puVar15[1] == puVar22[1])" ( (binary_expression "puVar15[1] == puVar22[1]" (subscript_expression "puVar15[1]" identifier [ number_literal ]) == (subscript_expression "puVar22[1]" identifier [ number_literal ])) )) || (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" ( (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" ( (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" * (cast_expression "(byte *)(iVar7 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x28)" ( (binary_expression "iVar7 + 0x28" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_00028a63;" goto statement_identifier ;)) }))) (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar20 = 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 "uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11)" identifier (argument_list "(uVar20,uVar14,iVar7,uVar8,iVar11)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar10 == 0) goto LAB_00028d68;" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028d68;" goto statement_identifier ;)) (labeled_statement "LAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" if (parenthesized_expression "(*(int *)(iVar7 + 0x68) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x68) == 0" (pointer_expression "*(int *)(iVar7 + 0x68)" * (cast_expression "(int *)(iVar7 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x68)" ( (binary_expression "iVar7 + 0x68" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" { (expression_statement "uVar8 = bfd_set_error_handler(FUN_0001df90);" (assignment_expression "uVar8 = bfd_set_error_handler(FUN_0001df90)" identifier = (call_expression "bfd_set_error_handler(FUN_0001df90)" identifier (argument_list "(FUN_0001df90)" ( identifier )))) ;) })) (expression_statement "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" identifier = (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0xac)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(iVar7,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" { (if_statement "if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" if (parenthesized_expression "(DAT_00093d30 != 0)" ( (binary_expression "DAT_00093d30 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" identifier (argument_list "(uVar14,iVar7)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_00029904;" goto statement_identifier ;) })) (labeled_statement "LAB_00028aaa:\n        bfd_set_error_handler(uVar8);" statement_identifier : (expression_statement "bfd_set_error_handler(uVar8);" (call_expression "bfd_set_error_handler(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;)) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;) })) (labeled_statement "LAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;" statement_identifier : (if_statement "if (DAT_00093d30 == 0) goto LAB_00028aaa;" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028aaa;" goto 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_r0x00029918;" goto statement_identifier ;) })) (if_statement "if (iVar10 != 0) goto LAB_00028a63;" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00028a63;" goto statement_identifier ;)) (labeled_statement "LAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;" statement_identifier : (if_statement "if (DAT_00093d30 == 0) goto LAB_00028ac0;" if (parenthesized_expression "(DAT_00093d30 == 0)" ( (binary_expression "DAT_00093d30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028ac0;" goto statement_identifier ;))) (expression_statement "uVar8 = bfd_printable_name(DAT_00093cb4);" (assignment_expression "uVar8 = bfd_printable_name(DAT_00093cb4)" identifier = (call_expression "bfd_printable_name(DAT_00093cb4)" identifier (argument_list "(DAT_00093cb4)" ( identifier )))) ;) (expression_statement "uVar14 = bfd_printable_name(iVar7);" (assignment_expression "uVar14 = bfd_printable_name(iVar7)" identifier = (call_expression "bfd_printable_name(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8)" identifier (argument_list "(uVar20,uVar14,iVar7,uVar8)" ( identifier , identifier , identifier , identifier ))) ;) })) (if_statement "if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" if (parenthesized_expression "(DAT_00093d74 != 0)" ( (binary_expression "DAT_00093d74 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (while_statement "while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" while (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      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" { (while_statement "while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" while (parenthesized_expression "(iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0)" ( (comma_expression "iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0" (assignment_expression "iVar7 = 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 "iVar7 == 0" identifier == number_literal)) )) (compound_statement "{\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" { (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) goto LAB_00028bc4;" 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_00028bc4;" goto statement_identifier ;)) })) (expression_statement "iVar11 = *(int *)(iVar7 + 0x2c);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x2c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar7 + 0x30);" (assignment_expression "uVar14 = *(undefined4 *)(iVar7 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "pcVar12 = (char *)xmalloc(iVar11);" (assignment_expression "pcVar12 = (char *)xmalloc(iVar11)" identifier = (cast_expression "(char *)xmalloc(iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar11)" identifier (argument_list "(iVar11)" ( identifier ))))) ;) (expression_statement "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);" (assignment_expression "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" identifier = (call_expression "bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" identifier (argument_list "(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" ( (subscript_expression "piVar24[4]" identifier [ number_literal ]) , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (if_statement "if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" { (expression_statement "uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" identifier (argument_list "(uVar14,iVar7)" ( identifier , identifier ))) ;) })) (expression_statement "pcVar13 = pcVar12 + iVar11;" (assignment_expression "pcVar13 = pcVar12 + iVar11" identifier = (binary_expression "pcVar12 + iVar11" identifier + identifier)) ;) (for_statement "for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" for ( ; (binary_expression "pcVar12 < pcVar13" identifier < identifier) ; (assignment_expression "pcVar12 = pcVar12 + sVar9 + 1" identifier = (binary_expression "pcVar12 + sVar9 + 1" (binary_expression "pcVar12 + sVar9" identifier + identifier) + number_literal)) ) (compound_statement "{\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" { (expression_statement "uVar8 = FUN_00028150(uVar8,pcVar12,0,0);" (assignment_expression "uVar8 = FUN_00028150(uVar8,pcVar12,0,0)" identifier = (call_expression "FUN_00028150(uVar8,pcVar12,0,0)" identifier (argument_list "(uVar8,pcVar12,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( 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 *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) | number_literal)) ;) })) (labeled_statement "LAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" statement_identifier : (expression_statement "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" (assignment_expression "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0)" identifier = (call_expression "FUN_00028150(0,&DAT_0004dff8,0,0)" identifier (argument_list "(0,&DAT_0004dff8,0,0)" ( number_literal , (pointer_expression "&DAT_0004dff8" & identifier) , number_literal , number_literal )))) ;)) (expression_statement "iVar7 = xcalloc(1,0x3c);" (assignment_expression "iVar7 = xcalloc(1,0x3c)" identifier = (call_expression "xcalloc(1,0x3c)" identifier (argument_list "(1,0x3c)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(iVar7 + 0x38) = FUN_0001ecc0;" (assignment_expression "*(code **)(iVar7 + 0x38) = FUN_0001ecc0" (pointer_expression "*(code **)(iVar7 + 0x38)" * (cast_expression "(code **)(iVar7 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x38)" ( (binary_expression "iVar7 + 0x38" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000283d0(DAT_00093d74,iVar7,0);" (call_expression "FUN_000283d0(DAT_00093d74,iVar7,0)" identifier (argument_list "(DAT_00093d74,iVar7,0)" ( identifier , identifier , number_literal ))) ;) })) (expression_statement "FUN_0002ba20();" (call_expression "FUN_0002ba20()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar17 = PTR__sch_istable_00092f98;" (assignment_expression "puVar17 = PTR__sch_istable_00092f98" identifier = identifier) ;) (if_statement "if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_00093d8c != 0)" ( (binary_expression "DAT_00093d8c != 0" identifier != number_literal) )) (compound_statement "{\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" { (expression_statement "local_54 = DAT_00093cbc;" (assignment_expression "local_54 = DAT_00093cbc" identifier = identifier) ;) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" if (parenthesized_expression "(DAT_00093cbc != 0)" ( (binary_expression "DAT_00093cbc != 0" identifier != number_literal) )) (compound_statement "{\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" { (do_statement "do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);" do (compound_statement "{\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      }" { (for_statement "for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" for ( (assignment_expression "puVar15 = *(undefined4 **)(local_54 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(local_54 + 0x60)" * (cast_expression "(undefined4 **)(local_54 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_54 + 0x60)" ( (binary_expression "local_54 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ) (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" { (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" { (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" identifier = (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "bVar21 = *pbVar3;" (assignment_expression "bVar21 = *pbVar3" identifier = (pointer_expression "*pbVar3" * identifier)) ;) (if_statement "if (bVar21 == 0) break;" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar21 * 2]" identifier [ (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" while (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)))" ( (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))" ( (binary_expression "(bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" ( (binary_expression "bVar2 & 0x8c" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(bVar21 == 0x5f)" ( (binary_expression "bVar21 == 0x5f" identifier == number_literal) ))) )) )) (compound_statement "{\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" { (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "bVar21 = *pbVar19;" (assignment_expression "bVar21 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (if_statement "if (bVar21 == 0) goto LAB_0002a660;" if (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002a660;" goto statement_identifier ;)) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" identifier = (subscript_expression "puVar17[(uint)bVar21 * 2]" identifier [ (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) ])) ;) })) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002a640;" goto statement_identifier ;)) })) (labeled_statement "LAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);" statement_identifier : (expression_statement "sVar9 = strlen((char *)pbVar3);" (assignment_expression "sVar9 = 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 "pcVar12 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 10)" identifier (argument_list "(sVar9 + 10)" ( (binary_expression "sVar9 + 10" identifier + number_literal) ))))) ;) (expression_statement "*pcVar12 = cVar1;" (assignment_expression "*pcVar12 = cVar1" (pointer_expression "*pcVar12" * identifier) = identifier) ;) (expression_statement "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" identifier (argument_list "(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" ( (binary_expression "pcVar12 + (cVar1 != '\0')" identifier + (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) , (string_literal ""__start_%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar12[1] = cVar1;" (assignment_expression "pcVar12[1] = cVar1" (subscript_expression "pcVar12[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" identifier (argument_list "(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" ( (binary_expression "pcVar12 + (2 - (uint)(cVar1 == '\0'))" identifier + (parenthesized_expression "(2 - (uint)(cVar1 == '\0'))" ( (binary_expression "2 - (uint)(cVar1 == '\0')" number_literal - (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )))) ))) , (string_literal ""__stop"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier ))) ;) })) (labeled_statement "LAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);" statement_identifier : (expression_statement "local_54 = *(int *)(local_54 + 0x9c);" (assignment_expression "local_54 = *(int *)(local_54 + 0x9c)" identifier = (pointer_expression "*(int *)(local_54 + 0x9c)" * (cast_expression "(int *)(local_54 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_54 + 0x9c)" ( (binary_expression "local_54 + 0x9c" identifier + number_literal) ))))) ;)) }) while (parenthesized_expression "(local_54 != 0)" ( (binary_expression "local_54 != 0" identifier != number_literal) )) ;) })) })) (expression_statement "FUN_00025190(1);" (call_expression "FUN_00025190(1)" identifier (argument_list "(1)" ( number_literal ))) ;) (expression_statement "puVar15 = DAT_0009384c;" (assignment_expression "puVar15 = DAT_0009384c" identifier = identifier) ;) (labeled_statement "joined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" statement_identifier : (if_statement "if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    }" { (if_statement "if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" if (parenthesized_expression "(puVar15[3] != 0)" ( (binary_expression "puVar15[3] != 0" (subscript_expression "puVar15[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" { (expression_statement "FUN_00030910(puVar15[3]);" (call_expression "FUN_00030910(puVar15[3])" identifier (argument_list "(puVar15[3])" ( (subscript_expression "puVar15[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar14 = DAT_00093e38;" (assignment_expression "uVar14 = DAT_00093e38" identifier = identifier) ;) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" identifier = identifier) ;) (if_statement "if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" if (parenthesized_expression "(DAT_00093e44 == 0)" ( (binary_expression "DAT_00093e44 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) }) (else_clause "else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" else (compound_statement "{\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" { (expression_statement "puVar15[10] = DAT_00093e38;" (assignment_expression "puVar15[10] = DAT_00093e38" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[4] = uVar8;" (assignment_expression "puVar15[4] = uVar8" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[5] = uVar14;" (assignment_expression "puVar15[5] = uVar14" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[9] = uVar8;" (assignment_expression "puVar15[9] = uVar8" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = identifier) ;) }))) })) (if_statement "if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" if (parenthesized_expression "(puVar15[8] != 0)" ( (binary_expression "puVar15[8] != 0" (subscript_expression "puVar15[8]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" { (expression_statement "FUN_00030910(puVar15[8]);" (call_expression "FUN_00030910(puVar15[8])" identifier (argument_list "(puVar15[8])" ( (subscript_expression "puVar15[8]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" identifier = identifier) ;) (if_statement "if (DAT_00093e44 == 0) goto LAB_00028dd0;" if (parenthesized_expression "(DAT_00093e44 == 0)" ( (binary_expression "DAT_00093e44 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00028dd0;" goto statement_identifier ;)) (expression_statement "puVar15[7] = DAT_00093e38;" (assignment_expression "puVar15[7] = DAT_00093e38" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[6] = uVar8;" (assignment_expression "puVar15[6] = uVar8" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" identifier = (cast_expression "(undefined4 *)puVar15[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[2]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (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_00093e20 = 0;" (assignment_expression "DAT_00093e20 = 0" identifier = number_literal) ;) (if_statement "if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" if (parenthesized_expression "(((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))))" ( (binary_expression "((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" (parenthesized_expression "((DAT_00093c87 & 0x20) == 0)" ( (binary_expression "(DAT_00093c87 & 0x20) == 0" (parenthesized_expression "(DAT_00093c87 & 0x20)" ( (binary_expression "DAT_00093c87 & 0x20" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))" ( (binary_expression "(DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)" (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) || (parenthesized_expression "(DAT_00093d20 != 0)" ( (binary_expression "DAT_00093d20 != 0" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" { (if_statement "if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" if (parenthesized_expression "(DAT_00093dac == 0)" ( (binary_expression "DAT_00093dac == 0" identifier == number_literal) )) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,0)" ( identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" else (compound_statement "{\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" { (if_statement "if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093dac == 2)" ( (binary_expression "DAT_00093dac == 2" identifier == number_literal) )) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" { (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" identifier (argument_list "(DAT_00093ca0,FUN_00020720,local_20)" ( identifier , identifier , identifier ))) ;) }))) })) (expression_statement "FUN_00025db0();" (call_expression "FUN_00025db0()" identifier (argument_list "()" ( ))) ;) (expression_statement "bVar21 = DAT_00093c80;" (assignment_expression "bVar21 = DAT_00093c80" identifier = identifier) ;) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" identifier = identifier) ;) (if_statement "if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c80 & 3) == 2)" ( (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" { (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" { (for_statement "for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" for ( (assignment_expression "iVar7 = *(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 "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ) (compound_statement "{\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" { (if_statement "if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" if (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x2000) == 0)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x2000)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal)) ;) })) })) })) })) })) (if_statement "if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" if (parenthesized_expression "((bVar21 & 0x40) != 0)" ( (binary_expression "(bVar21 & 0x40) != 0" (parenthesized_expression "(bVar21 & 0x40)" ( (binary_expression "bVar21 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x184)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00093cb4,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;) })) (expression_statement "iVar7 = DAT_00093cbc;" (assignment_expression "iVar7 = DAT_00093cbc" identifier = identifier) ;) (if_statement "if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" if (parenthesized_expression "((DAT_00093c86 & 0x20) != 0)" ( (binary_expression "(DAT_00093c86 & 0x20) != 0" (parenthesized_expression "(DAT_00093c86 & 0x20)" ( (binary_expression "DAT_00093c86 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" { (for_statement "for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" for ( ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = *(int *)(iVar7 + 0x9c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x9c)" * (cast_expression "(int *)(iVar7 + 0x9c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x9c)" ( (binary_expression "iVar7 + 0x9c" identifier + number_literal) ))))) ) (compound_statement "{\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" { (expression_statement "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80)" identifier = (call_expression "bfd_link_check_relocs(iVar7,&DAT_00093c80)" identifier (argument_list "(iVar7,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) )))) ;) (if_statement "if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_00093d84 = 0;\n      }" { (expression_statement "DAT_00093d84 = 0;" (assignment_expression "DAT_00093d84 = 0" identifier = number_literal) ;) })) })) })) (expression_statement "FUN_00031410();" (call_expression "FUN_00031410()" 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_0001e100();" (call_expression "FUN_0001e100()" identifier (argument_list "()" ( ))) ;) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" identifier = (binary_expression "DAT_000937e0 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00025ed0();" (call_expression "FUN_00025ed0()" 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_00093c40;" (assignment_expression "piVar24 = (int *)*DAT_00093c40" identifier = (cast_expression "(int *)*DAT_00093c40" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_00093c40" * identifier))) ;) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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_00028f94:\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_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }" else (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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 "piVar32 = DAT_00093c40;" (assignment_expression "piVar32 = DAT_00093c40" identifier = identifier) ;) (while_statement "while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" while (parenthesized_expression "(piVar16 = piVar24, piVar24[1] == 0)" ( (comma_expression "piVar16 = piVar24, piVar24[1] == 0" (assignment_expression "piVar16 = 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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" { (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }" { (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0xea0)" identifier (argument_list "("../../ld/ldlang.c",0xea0)" ( (string_literal ""../../ld/ldlang.c"" " string_content ") , number_literal ))) ;) (expression_statement "piVar16 = (int *)*piVar32;" (assignment_expression "piVar16 = (int *)*piVar32" identifier = (cast_expression "(int *)*piVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar32" * 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_00028f8a;" 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_00028f8a;" goto statement_identifier ;)) (labeled_statement "LAB_00028f8c:\n      piVar24 = (int *)*piVar16;" statement_identifier : (expression_statement "piVar24 = (int *)*piVar16;" (assignment_expression "piVar24 = (int *)*piVar16" identifier = (cast_expression "(int *)*piVar16" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar16" * identifier))) ;)) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" identifier = identifier) ;) (expression_statement "piVar32 = piVar16;" (assignment_expression "piVar32 = piVar16" identifier = identifier) ;) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028f94;" 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_00028f94;" goto statement_identifier ;)) })) (if_statement "if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }" if (parenthesized_expression "(piVar24[1] != 0xe)" ( (binary_expression "piVar24[1] != 0xe" (subscript_expression "piVar24[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }" { (labeled_statement "LAB_00028f8a:\n      piVar26 = piVar27;" statement_identifier : (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" identifier = identifier) ;)) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (expression_statement "iVar7 = FUN_00023550(piVar24[2],0,0);" (assignment_expression "iVar7 = FUN_00023550(piVar24[2],0,0)" identifier = (call_expression "FUN_00023550(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 (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" { (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 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          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }" { (do_statement "do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);" do (compound_statement "{\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        }" { (expression_statement "iVar7 = *(int *)(iVar7 + 0x14);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x14)" identifier = (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) goto LAB_00029066;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029066;" goto statement_identifier ;)) }) while (parenthesized_expression "(*(int *)(iVar7 + 0x48) < 0)" ( (binary_expression "*(int *)(iVar7 + 0x48) < 0" (pointer_expression "*(int *)(iVar7 + 0x48)" * (cast_expression "(int *)(iVar7 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x48)" ( (binary_expression "iVar7 + 0x48" identifier + number_literal) )))) < number_literal) )) ;) })) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\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        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }" { (expression_statement "iVar11 = piVar27[5];" (assignment_expression "iVar11 = piVar27[5]" identifier = (subscript_expression "piVar27[5]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = piVar23[4];" (assignment_expression "iVar10 = piVar23[4]" identifier = (subscript_expression "piVar23[4]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar11 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }" { (expression_statement "DAT_00093c44 = (int *)(iVar11 + 0x10);" (assignment_expression "DAT_00093c44 = (int *)(iVar11 + 0x10)" identifier = (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) )))) ;) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_00029bab;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00029bab;" goto statement_identifier ;)) (labeled_statement "LAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;" statement_identifier : (expression_statement "*(int **)(iVar11 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar11 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar11 + 0x14)" * (cast_expression "(int **)(iVar11 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;)) }) (else_clause "else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" else (compound_statement "{\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" { (expression_statement "*(int *)(iVar10 + 0x14) = iVar11;" (assignment_expression "*(int *)(iVar10 + 0x14) = iVar11" (pointer_expression "*(int *)(iVar10 + 0x14)" * (cast_expression "(int *)(iVar10 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x14)" ( (binary_expression "iVar10 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" identifier = (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 != 0) goto LAB_0002996d;" if (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002996d;" goto statement_identifier ;)) (labeled_statement "LAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;" statement_identifier : (expression_statement "DAT_00093c44 = piVar23 + 4;" (assignment_expression "DAT_00093c44 = piVar23 + 4" identifier = (binary_expression "piVar23 + 4" identifier + number_literal)) ;)) }))) (expression_statement "piVar27[5] = iVar7;" (assignment_expression "piVar27[5] = iVar7" (subscript_expression "piVar27[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (expression_statement "*(int **)(iVar7 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar7 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar7 + 0x10)" * (cast_expression "(int **)(iVar7 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }" if (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0))" ( (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0))" ( (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)" (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) && (parenthesized_expression "(*(int *)(iVar25 + 0xac) != 0)" ( (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" * (cast_expression "(int *)(iVar25 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xac)" ( (binary_expression "iVar25 + 0xac" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar10 = iVar25, iVar11 == 0)" ( (comma_expression "iVar10 = iVar25, iVar11 == 0" (assignment_expression "iVar10 = iVar25" identifier = identifier) , (binary_expression "iVar11 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n            iVar11 = iVar25;\n          }" { (expression_statement "iVar11 = iVar25;" (assignment_expression "iVar11 = 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 (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" { (expression_statement "iVar25 = *(int *)(iVar7 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x1c)" identifier = (pointer_expression "*(int *)(iVar7 + 0x1c)" * (cast_expression "(int *)(iVar7 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" { (expression_statement "piVar27 = *(int **)(iVar7 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar7 + 0x14)" identifier = (pointer_expression "*(int **)(iVar7 + 0x14)" * (cast_expression "(int **)(iVar7 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              }" { (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;" if (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0))" ( (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 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 + 0xac) != 0)" ( (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" * (cast_expression "(int *)(iVar25 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0xac)" ( (binary_expression "iVar25 + 0xac" identifier + number_literal) )))) != number_literal) ))) )) (goto_statement "goto LAB_000299ca;" 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_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" else (compound_statement "{\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" { (labeled_statement "LAB_000299ca:\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 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" if (parenthesized_expression "(iVar25 != iVar10)" ( (binary_expression "iVar25 != iVar10" identifier != identifier) )) (compound_statement "{\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" { (expression_statement "iVar7 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00093cb4 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" * (cast_expression "(int *)(DAT_00093cb4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" else (compound_statement "{\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" { (expression_statement "*(int *)(iVar7 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" identifier = (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar7;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar7" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" * (cast_expression "(int *)(DAT_00093cb4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 100)" ( (binary_expression "DAT_00093cb4 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" else (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" { (expression_statement "*(int *)(iVar28 + 0x10) = iVar7;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar7" (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 "iVar7 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar7 = *(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 *)(iVar10 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar10 + 0xc)" * (cast_expression "(int *)(iVar10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }" { (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar10;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar10" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" * (cast_expression "(int *)(DAT_00093cb4 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 100)" ( (binary_expression "DAT_00093cb4 + 100" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" else (compound_statement "{\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" { (expression_statement "*(int *)(iVar7 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x10)" * (cast_expression "(int *)(iVar7 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) }))) (expression_statement "*(int *)(iVar11 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 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) = iVar11;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar11" (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_0001ddf0();" (assignment_expression "piVar24 = (int *)FUN_0001ddf0()" identifier = (cast_expression "(int *)FUN_0001ddf0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ddf0()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar7 = *DAT_00093c40;" (assignment_expression "iVar7 = *DAT_00093c40" identifier = (pointer_expression "*DAT_00093c40" * identifier)) ;) (expression_statement "*DAT_00093c40 = *(int *)*piVar32;" (assignment_expression "*DAT_00093c40 = *(int *)*piVar32" (pointer_expression "*DAT_00093c40" * identifier) = (pointer_expression "*(int *)*piVar32" * (cast_expression "(int *)*piVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar32" * identifier)))) ;) (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) ;) (expression_statement "*piVar32 = iVar11;" (assignment_expression "*piVar32 = iVar11" (pointer_expression "*piVar32" * identifier) = identifier) ;) (if_statement "if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n        DAT_000938ac = piVar32;\n      }" { (expression_statement "DAT_000938ac = piVar32;" (assignment_expression "DAT_000938ac = piVar32" identifier = identifier) ;) })) (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (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 "piVar16 = DAT_00093c40;" (assignment_expression "piVar16 = DAT_00093c40" identifier = identifier) ;) (goto_statement "goto LAB_00028f8c;" goto statement_identifier ;) })) (labeled_statement "LAB_00029066:\n    iVar7 = piVar24[2];" statement_identifier : (expression_statement "iVar7 = piVar24[2];" (assignment_expression "iVar7 = piVar24[2]" identifier = (subscript_expression "piVar24[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar8,iVar7)" identifier (argument_list "(uVar8,iVar7)" ( identifier , identifier ))) ;) }))) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal)) ;) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_000937fc" 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    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" { (expression_statement "puVar15 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar15 = *(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_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" statement_identifier : (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" { (do_statement "do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );" do (compound_statement "{\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      }" { (if_statement "if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" if (parenthesized_expression "(puVar15[0x15] == 0)" ( (binary_expression "puVar15[0x15] == 0" (subscript_expression "puVar15[0x15]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" { (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;" 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_r0x000290dc;" goto statement_identifier ;)) (expression_statement "iVar7 = FUN_0001f130();" (assignment_expression "iVar7 = FUN_0001f130()" identifier = (call_expression "FUN_0001f130()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar38 = iVar7 == 0;" (assignment_expression "bVar38 = iVar7 == 0" identifier = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }" { (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" identifier = (cast_expression "(byte *)*puVar15" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar33 = (byte *)"COMMON";" (assignment_expression "pbVar33 = (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 (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" identifier = (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" identifier = (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" if (parenthesized_expression "((!bVar37 && !bVar38) == bVar37)" ( (binary_expression "(!bVar37 && !bVar38) == bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" ( (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) == identifier) )) (compound_statement "{\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }" { (if_statement "if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" if (parenthesized_expression "(((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0))" ( (binary_expression "((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)" (parenthesized_expression "((DAT_00093c80 & 3) != 2)" ( (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) )) || (parenthesized_expression "(DAT_00093d20 != 0)" ( (binary_expression "DAT_00093d20 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" { (if_statement "if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" if (parenthesized_expression "(DAT_000938c0 == 0)" ( (binary_expression "DAT_000938c0 == 0" identifier == number_literal) )) (compound_statement "{\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" { (expression_statement "DAT_000938c0 = FUN_00023550(".bss",0,1);" (assignment_expression "DAT_000938c0 = FUN_00023550(".bss",0,1)" identifier = (call_expression "FUN_00023550(".bss",0,1)" identifier (argument_list "(".bss",0,1)" ( (string_literal "".bss"" " string_content ") , number_literal , number_literal )))) ;) })) (expression_statement "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);" (call_expression "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" identifier (argument_list "(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" ( (binary_expression "DAT_000938c0 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) }) (else_clause "else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" else (if_statement "if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" if (parenthesized_expression "(DAT_00093d9c == 1)" ( (binary_expression "DAT_00093d9c == 1" identifier == number_literal) )) (compound_statement "{\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }" { (expression_statement "iVar7 = FUN_00023550("/DISCARD/",0,1);" (assignment_expression "iVar7 = FUN_00023550("/DISCARD/",0,1)" identifier = (call_expression "FUN_00023550("/DISCARD/",0,1)" identifier (argument_list "("/DISCARD/",0,1)" ( (string_literal ""/DISCARD/"" " string_content ") , number_literal , number_literal )))) ;) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" if (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" ( (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" ( (binary_expression "*(byte *)(puVar15 + 5) & 3" (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                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" { (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" identifier = (call_expression "FUN_000307b0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" identifier (argument_list "(iVar7 + 8,puVar15,0,iVar7)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) }) (else_clause "else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" else (compound_statement "{\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" { (if_statement "if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" if (parenthesized_expression "(DAT_00093d9c == 3)" ( (binary_expression "DAT_00093d9c == 3" identifier == number_literal) )) (compound_statement "{\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" { (expression_statement "uVar8 = puVar15[0x2b];" (assignment_expression "uVar8 = puVar15[0x2b]" identifier = (subscript_expression "puVar15[0x2b]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,puVar15,uVar8);" (call_expression "FUN_00032ba0(uVar14,puVar15,uVar8)" identifier (argument_list "(uVar14,puVar15,uVar8)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }" if (parenthesized_expression "((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0))" ( (binary_expression "(DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)" (parenthesized_expression "(DAT_00093db8 == 0)" ( (binary_expression "DAT_00093db8 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_000210f0(), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_000210f0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_000210f0()" identifier = (call_expression "FUN_000210f0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                uVar8 = 0;\n              }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                uVar8 = 0x17e;\n              }" else (compound_statement "{\n                uVar8 = 0x17e;\n              }" { (expression_statement "uVar8 = 0x17e;" (assignment_expression "uVar8 = 0x17e" identifier = number_literal) ;) }))) (expression_statement "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);" (assignment_expression "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8)" identifier = (call_expression "FUN_00031560(puVar15,pbVar3,uVar8)" identifier (argument_list "(puVar15,pbVar3,uVar8)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" { (expression_statement "iVar7 = FUN_00023550(pbVar3,uVar8,1);" (assignment_expression "iVar7 = FUN_00023550(pbVar3,uVar8,1)" identifier = (call_expression "FUN_00023550(pbVar3,uVar8,1)" identifier (argument_list "(pbVar3,uVar8,1)" ( identifier , identifier , number_literal )))) ;) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" if (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" ( (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" ( (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" ( (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" ( (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) == number_literal) || (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" ( (binary_expression "*(byte *)(puVar15 + 5) & 3" (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                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" { (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" identifier = (call_expression "FUN_000307b0(0,0)" identifier (argument_list "(0,0)" ( number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" identifier (argument_list "(iVar7 + 8,puVar15,0,iVar7)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , identifier , number_literal , identifier ))) ;) })) (if_statement "if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" if (parenthesized_expression "(DAT_00093d9c == 2)" ( (binary_expression "DAT_00093d9c == 2" identifier == number_literal) )) (compound_statement "{\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" { (expression_statement "uVar8 = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar7 + 0x18)" identifier = (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" * (cast_expression "(undefined4 *)(iVar7 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x18)" ( (binary_expression "iVar7 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = puVar15[0x2b];" (assignment_expression "uVar14 = puVar15[0x2b]" identifier = (subscript_expression "puVar15[0x2b]" identifier [ number_literal ])) ;) (expression_statement "uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,puVar15,uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar20,puVar15,uVar14,uVar8)" identifier (argument_list "(uVar20,puVar15,uVar14,uVar8)" ( identifier , identifier , identifier , identifier ))) ;) })) }))))) }) (else_clause "else {\n            puVar15[0x15] = puVar17;\n          }" else (compound_statement "{\n            puVar15[0x15] = puVar17;\n          }" { (expression_statement "puVar15[0x15] = puVar17;" (assignment_expression "puVar15[0x15] = puVar17" (subscript_expression "puVar15[0x15]" identifier [ number_literal ]) = identifier) ;) }))) })) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (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 "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) (if_statement "if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" { (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))" ( (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" * (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" * (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18c)" ( (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" * (cast_expression "(int *)(DAT_00093cb4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 4)" ( (binary_expression "DAT_00093cb4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_00093cb4,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;) (expression_statement "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");" (assignment_expression "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text")" identifier = (call_expression "bfd_get_section_by_name(DAT_00093cb4,".text")" identifier (argument_list "(DAT_00093cb4,".text")" ( identifier , (string_literal "".text"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }" { (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }) (else_clause "else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" else (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" { (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" identifier = (binary_expression "DAT_00093c80 & 3" identifier & number_literal)) ;) (if_statement "if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" if (parenthesized_expression "(DAT_00093db0 == 0)" ( (binary_expression "DAT_00093db0 == 0" identifier == number_literal) )) (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }) (else_clause "else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" else (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" { (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) }))) }))) })) (for_statement "for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" for ( ; (comma_expression "DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_0009382c = piVar24" identifier = identifier) , (comma_expression "DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_00093cb4 = iVar7" 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    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" { (expression_statement "iVar7 = piVar26[5];" (assignment_expression "iVar7 = piVar26[5]" identifier = (subscript_expression "piVar26[5]" identifier [ number_literal ])) ;) (if_statement "if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" if (parenthesized_expression "((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))))" ( (binary_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))" (parenthesized_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" ( (binary_expression "((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar7 != 0) && (piVar26[9] == 0))" ( (binary_expression "(iVar7 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 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 *)(iVar7 + 0x20))))" ( (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))" ( (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(piVar26[8] == *(int *)(iVar7 + 0x20))" ( (binary_expression "piVar26[8] == *(int *)(iVar7 + 0x20)" (subscript_expression "piVar26[8]" identifier [ number_literal ]) == (pointer_expression "*(int *)(iVar7 + 0x20)" * (cast_expression "(int *)(iVar7 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20)" ( (binary_expression "iVar7 + 0x20" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" { (expression_statement "piVar26[9] = *(int *)(iVar7 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar7 + 0x24)" (subscript_expression "piVar26[9]" identifier [ number_literal ]) = (pointer_expression "*(int *)(iVar7 + 0x24)" * (cast_expression "(int *)(iVar7 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x24)" ( (binary_expression "iVar7 + 0x24" identifier + number_literal) ))))) ;) })) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" identifier = identifier) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) })) (if_statement "if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "((DAT_00093d8c != 0) && (DAT_00093828 != 0))" ( (binary_expression "(DAT_00093d8c != 0) && (DAT_00093828 != 0)" (parenthesized_expression "(DAT_00093d8c != 0)" ( (binary_expression "DAT_00093d8c != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00093828 != 0)" ( (binary_expression "DAT_00093828 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar26 = piVar24 + DAT_00093828;" (assignment_expression "piVar26 = piVar24 + DAT_00093828" identifier = (binary_expression "piVar24 + DAT_00093828" identifier + identifier)) ;) (do_statement "do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    }" { (while_statement "while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" while (parenthesized_expression "(iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0)" ( (comma_expression "iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0" (assignment_expression "iVar11 = *piVar24" identifier = (pointer_expression "*piVar24" * identifier)) , (binary_expression "(*(byte *)(iVar11 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xd) & 8)" ( (binary_expression "*(byte *)(iVar11 + 0xd) & 8" (pointer_expression "*(byte *)(iVar11 + 0xd)" * (cast_expression "(byte *)(iVar11 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xd)" ( (binary_expression "iVar11 + 0xd" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" { (expression_statement "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];" (assignment_expression "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" identifier = (cast_expression "(undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(*(undefined4 **)(iVar11 + 0x14))[0x15]" (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x14))" ( (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) )) [ number_literal ]))) ;) (if_statement "if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" if (parenthesized_expression "(((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           )" ( (binary_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7))" ( (binary_expression "(puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(puVar15[0x2b] != iVar7)" ( (binary_expression "puVar15[0x2b] != iVar7" (subscript_expression "puVar15[0x2b]" identifier [ number_literal ]) != identifier) ))) )) || (parenthesized_expression "(iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" ( (comma_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0" (assignment_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" identifier = (call_expression "strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" identifier (argument_list "((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" ( (cast_expression "(char *)**(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(iVar11 + 0x14)" * (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" * (cast_expression "(undefined4 **)(iVar11 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))))) , (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) )))) , (binary_expression "iVar10 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" { (expression_statement "*(undefined1 *)(iVar11 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0xc)" * (cast_expression "(undefined1 *)(iVar11 + 0xc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar11 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" * (cast_expression "(undefined4 *)(iVar11 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 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_00029327;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_00029327;" 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_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" statement_identifier : (if_statement "if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" if (parenthesized_expression "(bVar21 != 2)" ( (binary_expression "bVar21 != 2" identifier != number_literal) )) (compound_statement "{\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" { (for_statement "for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" for ( (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ) (compound_statement "{\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" { (expression_statement "pcVar12 = (char *)*puVar15;" (assignment_expression "pcVar12 = (char *)*puVar15" identifier = (cast_expression "(char *)*puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" identifier = (call_expression "strlen(pcVar12)" identifier (argument_list "(pcVar12)" ( identifier )))) ;) (expression_statement "pcVar13 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar13 = (char *)xmalloc(sVar9 + 10)" identifier = (cast_expression "(char *)xmalloc(sVar9 + 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar9 + 10)" identifier (argument_list "(sVar9 + 10)" ( (binary_expression "sVar9 + 10" identifier + number_literal) ))))) ;) (expression_statement "sprintf(pcVar13,".startof.%s",pcVar12);" (call_expression "sprintf(pcVar13,".startof.%s",pcVar12)" identifier (argument_list "(pcVar13,".startof.%s",pcVar12)" ( identifier , (string_literal "".startof.%s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "builtin_strncpy(pcVar13 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar13 + 1,".size",5)" identifier (argument_list "(pcVar13 + 1,".size",5)" ( (binary_expression "pcVar13 + 1" identifier + number_literal) , (string_literal "".size"" " string_content ") , number_literal ))) ;) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" identifier (argument_list "()" ( ))) ;) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier ))) ;) })) }))) (expression_statement "FUN_00031450();" (call_expression "FUN_00031450()" 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_64 = (void *)xmalloc(0x28);" (assignment_expression "local_64 = (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 (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" for ( (assignment_expression "puVar15 = DAT_00093c38" identifier = identifier) ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ) (compound_statement "{\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" { (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (for_statement "for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" for ( (assignment_expression "piVar26 = DAT_00093c40" 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }" { (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" if (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))))" ( (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)))" ( (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))" ( (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)" ( (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar27 = piVar26" identifier = identifier) , (comma_expression "piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar23 = piVar24" identifier = identifier) , (binary_expression "puVar15[2] != 3" (subscript_expression "puVar15[2]" identifier [ number_literal ]) != number_literal))) ))) )) ))) )) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" { (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\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_000293ea;\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_000293ea;" 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_000293ea;" 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 "uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) }) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }" else (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }" { (labeled_statement "LAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" statement_identifier : (expression_statement "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" (assignment_expression "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1])" identifier = (call_expression "strcmp((char *)piVar23[1],(char *)puVar15[1])" identifier (argument_list "((char *)piVar23[1],(char *)puVar15[1])" ( (cast_expression "(char *)piVar23[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar23[1]" identifier [ number_literal ])) , (cast_expression "(char *)puVar15[1]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ])) )))) ;)) (expression_statement "uVar29 = local_44;" (assignment_expression "uVar29 = local_44" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" { (if_statement "if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" if (parenthesized_expression "(local_44 <= local_6c)" ( (binary_expression "local_44 <= local_6c" identifier <= identifier) )) (compound_statement "{\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" { (expression_statement "uVar29 = local_44 * 2;" (assignment_expression "uVar29 = local_44 * 2" identifier = (binary_expression "local_44 * 2" identifier * number_literal)) ;) (expression_statement "local_64 = (void *)xrealloc(local_64,local_44 << 3);" (assignment_expression "local_64 = (void *)xrealloc(local_64,local_44 << 3)" identifier = (cast_expression "(void *)xrealloc(local_64,local_44 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_64,local_44 << 3)" identifier (argument_list "(local_64,local_44 << 3)" ( identifier , (binary_expression "local_44 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_64 + (int)local_6c * 4)" * (cast_expression "(int *)((int)local_64 + (int)local_6c * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + (int)local_6c * 4)" ( (binary_expression "(int)local_64 + (int)local_6c * 4" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)local_6c * 4" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) = (subscript_expression "piVar26[7]" identifier [ number_literal ])) ;) (expression_statement "local_6c = (int *)((int)local_6c + 1);" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" identifier = (cast_expression "(int *)((int)local_6c + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "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 = uVar29;" (assignment_expression "local_44 = uVar29" identifier = identifier) ;) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" identifier = identifier) ;) })) }))) })) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (if_statement "if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" if (parenthesized_expression "(puVar15[6] != 0)" ( (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" { (expression_statement "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");" (assignment_expression "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags")" identifier = (call_expression "FUN_00030fd0(puVar15[6],0,0,"phdr flags")" identifier (argument_list "(puVar15[6],0,0,"phdr flags")" ( (subscript_expression "puVar15[6]" identifier [ number_literal ]) , number_literal , number_literal , (string_literal ""phdr flags"" " string_content ") )))) ;) })) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar40 = 0;" (assignment_expression "uVar40 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" { (expression_statement "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");" (assignment_expression "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address")" identifier = (call_expression "FUN_00030fd0(iVar7,0,0,"phdr load address")" identifier (argument_list "(iVar7,0,0,"phdr load address")" ( identifier , number_literal , number_literal , (string_literal ""phdr load address"" " string_content ") )))) ;) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) })) (expression_statement "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);" (assignment_expression "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" identifier = (call_expression "bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" identifier (argument_list "(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" ( identifier , (subscript_expression "puVar15[2]" identifier [ number_literal ]) , (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" identifier [ number_literal ]) != number_literal) , identifier , (binary_expression "iVar7 != 0" identifier != number_literal) , identifier , (subscript_expression "puVar15[3]" identifier [ number_literal ]) , (subscript_expression "puVar15[4]" identifier [ number_literal ]) , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) })) (expression_statement "free(local_64);" (call_expression "free(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (for_statement "for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" for ( (assignment_expression "piVar24 = DAT_00093c40" 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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" { (do_statement "do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" do (compound_statement "{\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" { (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" identifier = false) ;) (expression_statement "bVar38 = piVar26[2] == 0;" (assignment_expression "bVar38 = piVar26[2] == 0" identifier = (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" identifier [ number_literal ]) == number_literal)) ;) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }" if (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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 "iVar7 = 5;" (assignment_expression "iVar7 = 5" identifier = number_literal) ;) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" identifier = identifier) ;) (expression_statement "pbVar33 = (byte *)0x3f35d;" (assignment_expression "pbVar33 = (byte *)0x3f35d" identifier = (cast_expression "(byte *)0x3f35d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" do (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" { (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" identifier = (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" identifier = (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" identifier = (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" identifier + (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar38)" ( identifier )) ;) (if_statement "if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;" if (parenthesized_expression "((!bVar37 && !bVar38) != bVar37)" ( (binary_expression "(!bVar37 && !bVar38) != bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" ( (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" ! identifier) && (unary_expression "!bVar38" ! identifier)) )) != identifier) )) (goto_statement "goto code_r0x00029557;" 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_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }" if (parenthesized_expression "(((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2))" ( (binary_expression "((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)" (parenthesized_expression "((DAT_00093c82._1_1_ & 0x10) != 0)" ( (binary_expression "(DAT_00093c82._1_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 0x10)" ( (binary_expression "DAT_00093c82._1_1_ & 0x10" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00093c80 & 3) != 2)" ( (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_000261d0();" (call_expression "FUN_000261d0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }" { (expression_statement "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;" (assignment_expression "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) = (binary_expression "DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" identifier . field_identifier) & number_literal)) ;) })) })) (expression_statement "FUN_000269b0(0,1 < DAT_00093c98);" (call_expression "FUN_000269b0(0,1 < DAT_00093c98)" identifier (argument_list "(0,1 < DAT_00093c98)" ( number_literal , (binary_expression "1 < DAT_00093c98" number_literal < identifier) ))) ;) (expression_statement "FUN_00031430();" (call_expression "FUN_00031430()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" identifier = identifier) ;) (expression_statement "uVar29 = DAT_0009386c;" (assignment_expression "uVar29 = DAT_0009386c" identifier = identifier) ;) (if_statement "if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" if (parenthesized_expression "(DAT_00093828 != 0)" ( (binary_expression "DAT_00093828 != 0" identifier != number_literal) )) (compound_statement "{\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" { (expression_statement "piVar24 = DAT_0009382c + DAT_00093828;" (assignment_expression "piVar24 = DAT_0009382c + DAT_00093828" identifier = (binary_expression "DAT_0009382c + DAT_00093828" identifier + identifier)) ;) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" identifier = (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" identifier + number_literal)) ;) (expression_statement "piVar26 = DAT_0009382c;" (assignment_expression "piVar26 = DAT_0009382c" identifier = identifier) ;) (do_statement "do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" do (compound_statement "{\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    }" { (while_statement "while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" while (parenthesized_expression "(iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3)" ( (comma_expression "iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar11 = *piVar26" identifier = (pointer_expression "*piVar26" * identifier)) , (binary_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff)" ( (binary_expression "*(ushort *)(iVar11 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar11 + 0xc)" * (cast_expression "(ushort *)(iVar11 + 0xc)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) & number_literal) )) == number_literal)) )) (compound_statement "{\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" { (expression_statement "pcVar12 = *(char **)(iVar11 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar11 + 4)" identifier = (pointer_expression "*(char **)(iVar11 + 4)" * (cast_expression "(char **)(iVar11 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "local_5c._0_1_ = (byte)uVar29;" (assignment_expression "local_5c._0_1_ = (byte)uVar29" (field_expression "local_5c._0_1_" identifier . field_identifier) = (cast_expression "(byte)uVar29" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" if (parenthesized_expression "(*pcVar12 != '.')" ( (binary_expression "*pcVar12 != '.'" (pointer_expression "*pcVar12" * identifier) != (char_literal "'.'" ' character ')) )) (compound_statement "{\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" { (expression_statement "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18)" identifier = (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 0x18)" * (cast_expression "(char *)(*(int *)(iVar7 + 4) + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar7 + 4) + 0x18)" ( (binary_expression "*(int *)(iVar7 + 4) + 0x18" (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);" (assignment_expression "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54)" identifier = (pointer_expression "*(int *)(*(int *)(iVar11 + 0x14) + 0x54)" * (cast_expression "(int *)(*(int *)(iVar11 + 0x14) + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x54)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x54" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar11 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" if (parenthesized_expression "(pcVar12[(cVar1 != '\0') + 4] == 'o')" ( (binary_expression "pcVar12[(cVar1 != '\0') + 4] == 'o'" (subscript_expression "pcVar12[(cVar1 != '\0') + 4]" identifier [ (binary_expression "(cVar1 != '\0') + 4" (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) + number_literal) ]) == (char_literal "'o'" ' character ')) )) (compound_statement "{\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" { (expression_statement "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x2c)" * (cast_expression "(uint *)(iVar10 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x2c)" ( (binary_expression "iVar10 + 0x2c" identifier + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "*(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" * (cast_expression "(uint *)(iVar10 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x30)" ( (binary_expression "iVar10 + 0x30" identifier + number_literal) )))) << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))))) ;) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" identifier = identifier) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) })) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) })) (break_statement "break;" break ;) })) (if_statement "if (pcVar12[2] != 'i') break;" if (parenthesized_expression "(pcVar12[2] != 'i')" ( (binary_expression "pcVar12[2] != 'i'" (subscript_expression "pcVar12[2]" identifier [ number_literal ]) != (char_literal "'i'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" identifier = (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x30)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x30" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "uVar34 = uVar30 >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = uVar30 >> ((byte)local_5c & 0x1f)" identifier = (binary_expression "uVar30 >> ((byte)local_5c & 0x1f)" identifier >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" identifier = (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" * (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x2c)" ( (binary_expression "*(int *)(iVar11 + 0x14) + 0x2c" (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) + number_literal) )))) >> (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) | (binary_expression "uVar30 << 0x20 - ((byte)local_5c & 0x1f)" identifier << (binary_expression "0x20 - ((byte)local_5c & 0x1f)" number_literal - (parenthesized_expression "((byte)local_5c & 0x1f)" ( (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))))) ;) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" identifier = identifier) ;) (if_statement "if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" if (parenthesized_expression "((uVar29 & 0x20) != 0)" ( (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" ( (binary_expression "uVar29 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" identifier = identifier) ;) })) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" identifier = (binary_expression "piVar26 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" * (cast_expression "(uint *)(iVar11 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(iVar11 + 0x14) = puVar17;" (assignment_expression "*(undefined **)(iVar11 + 0x14) = puVar17" (pointer_expression "*(undefined **)(iVar11 + 0x14)" * (cast_expression "(undefined **)(iVar11 + 0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if (piVar24 == piVar26) goto LAB_000296b8;" if (parenthesized_expression "(piVar24 == piVar26)" ( (binary_expression "piVar24 == piVar26" identifier == identifier) )) (goto_statement "goto LAB_000296b8;" 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_000296b8:\n  FUN_00025190(4);" statement_identifier : (expression_statement "FUN_00025190(4);" (call_expression "FUN_00025190(4)" identifier (argument_list "(4)" ( number_literal ))) ;)) (expression_statement "FUN_00031490();" (call_expression "FUN_00031490()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00031320();" (call_expression "FUN_00031320()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) (if_statement "if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" if (parenthesized_expression "(DAT_00093d38 != '\0')" ( (binary_expression "DAT_00093d38 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" { (expression_statement "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);" (assignment_expression "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4)" identifier = (call_expression "bfd_arch_bits_per_address(DAT_00093cb4)" identifier (argument_list "(DAT_00093cb4)" ( identifier )))) ;) (expression_statement "uVar35 = iVar7 - 1U >> 5 & 1;" (assignment_expression "uVar35 = iVar7 - 1U >> 5 & 1" identifier = (binary_expression "iVar7 - 1U >> 5 & 1" (binary_expression "iVar7 - 1U >> 5" (binary_expression "iVar7 - 1U" identifier - number_literal) >> number_literal) & number_literal)) ;) (expression_statement "bVar39 = (byte)(iVar7 - 1U);" (assignment_expression "bVar39 = (byte)(iVar7 - 1U)" identifier = (call_expression "(byte)(iVar7 - 1U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(iVar7 - 1U)" ( (binary_expression "iVar7 - 1U" identifier - number_literal) )))) ;) (expression_statement "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);" (assignment_expression "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f)" identifier = (binary_expression "(uVar35 ^ 1) << (bVar39 & 0x1f)" (parenthesized_expression "(uVar35 ^ 1)" ( (binary_expression "uVar35 ^ 1" identifier ^ number_literal) )) << (parenthesized_expression "(bVar39 & 0x1f)" ( (binary_expression "bVar39 & 0x1f" identifier & number_literal) )))) ;) (expression_statement "iVar7 = uVar29 * 2;" (assignment_expression "iVar7 = uVar29 * 2" identifier = (binary_expression "uVar29 * 2" identifier * number_literal)) ;) (expression_statement "uVar30 = iVar7 - 1;" (assignment_expression "uVar30 = iVar7 - 1" identifier = (binary_expression "iVar7 - 1" identifier - number_literal)) ;) (expression_statement "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);" (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" * (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);" (assignment_expression "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" identifier = (binary_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" (parenthesized_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1)" ( (binary_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1" (parenthesized_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f)" ( (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f" (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1" (parenthesized_expression "(uVar35 << (bVar39 & 0x1f))" ( (binary_expression "uVar35 << (bVar39 & 0x1f)" identifier << (parenthesized_expression "(bVar39 & 0x1f)" ( (binary_expression "bVar39 & 0x1f" identifier & number_literal) ))) )) << number_literal) | (binary_expression "uVar29 >> 0x1f" identifier >> number_literal)) )) - number_literal) )) + (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) ))))) ;) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" if (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" { (do_statement "do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);" do (compound_statement "{\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      }" { (if_statement "if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" if (parenthesized_expression "((*(byte *)(puVar15 + 5) & 1) != 0)" ( (binary_expression "(*(byte *)(puVar15 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 1)" ( (binary_expression "*(byte *)(puVar15 + 5) & 1" (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          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" { (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = puVar15[0xb];" (assignment_expression "uVar34 = puVar15[0xb]" identifier = (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = uVar30 & uVar35 + uVar34;" (assignment_expression "uVar31 = uVar30 & uVar35 + uVar34" identifier = (binary_expression "uVar30 & uVar35 + uVar34" identifier & (binary_expression "uVar35 + uVar34" identifier + identifier))) ;) (expression_statement "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);" (assignment_expression "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" identifier = (binary_expression "uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" identifier & (binary_expression "puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" (binary_expression "puVar15[8] + puVar15[0xc]" (subscript_expression "puVar15[8]" identifier [ number_literal ]) + (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar35,uVar34)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar35,uVar34)" identifier (argument_list "(uVar35,uVar34)" ( identifier , identifier ))))))) ;) (if_statement "if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" if (parenthesized_expression "((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18))" ( (binary_expression "(uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" (parenthesized_expression "(uVar36 == 0 && uVar31 == 0)" ( (binary_expression "uVar36 == 0 && uVar31 == 0" (binary_expression "uVar36 == 0" identifier == number_literal) && (binary_expression "uVar31 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" ( (comma_expression "uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (assignment_expression "uVar18 = uVar29 & puVar15[8]" identifier = (binary_expression "uVar29 & puVar15[8]" identifier & (subscript_expression "puVar15[8]" identifier [ number_literal ]))) , (binary_expression "uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (binary_expression "uVar18 <= uVar36" identifier <= identifier) && (binary_expression "(uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (call_expression "(uint)(uVar31 < (uVar30 & uVar35))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 < (uVar30 & uVar35))" ( (binary_expression "uVar31 < (uVar30 & uVar35)" identifier < (parenthesized_expression "(uVar30 & uVar35)" ( (binary_expression "uVar30 & uVar35" identifier & identifier) ))) ))) <= (binary_expression "uVar36 - uVar18" identifier - identifier)))) ))) )) (compound_statement "{\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }" { (expression_statement "uVar35 = puVar15[9];" (assignment_expression "uVar35 = puVar15[9]" identifier = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "uVar31 = uVar30 & uVar34 + uVar35;" (assignment_expression "uVar31 = uVar30 & uVar34 + uVar35" identifier = (binary_expression "uVar30 & uVar34 + uVar35" identifier & (binary_expression "uVar34 + uVar35" identifier + identifier))) ;) (expression_statement "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;" (assignment_expression "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" identifier = (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35)" (binary_expression "puVar15[0xc] + puVar15[10]" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) + (subscript_expression "puVar15[10]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar34,uVar35)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35)" identifier (argument_list "(uVar34,uVar35)" ( identifier , identifier ))))) & identifier)) ;) (if_statement "if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;" if (parenthesized_expression "((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))" ( (binary_expression "(uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" (parenthesized_expression "(uVar34 == 0 && uVar31 == 0)" ( (binary_expression "uVar34 == 0 && uVar31 == 0" (binary_expression "uVar34 == 0" identifier == number_literal) && (binary_expression "uVar31 == 0" identifier == number_literal)) )) || (parenthesized_expression "(uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" ( (comma_expression "uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (assignment_expression "uVar36 = puVar15[10] & uVar29" identifier = (binary_expression "puVar15[10] & uVar29" (subscript_expression "puVar15[10]" identifier [ number_literal ]) & identifier)) , (binary_expression "uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (binary_expression "uVar36 <= uVar34" identifier <= identifier) && (binary_expression "(uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (call_expression "(uint)(uVar31 < (uVar35 & uVar30))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar31 < (uVar35 & uVar30))" ( (binary_expression "uVar31 < (uVar35 & uVar30)" identifier < (parenthesized_expression "(uVar35 & uVar30)" ( (binary_expression "uVar35 & uVar30" identifier & identifier) ))) ))) <= (binary_expression "uVar34 - uVar36" identifier - identifier)))) ))) )) (goto_statement "goto LAB_0002a1a0;" goto statement_identifier ;)) (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "pcVar12 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar12 = "%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            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" else (compound_statement "{\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "pcVar12 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar12 = "%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 "uVar14 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];" statement_identifier : (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;)) }) while (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" ( (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) (if_statement "if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" if (parenthesized_expression "(1 < *(uint *)(DAT_00093cb4 + 0x68))" ( (binary_expression "1 < *(uint *)(DAT_00093cb4 + 0x68)" number_literal < (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" * (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x68)" ( (binary_expression "DAT_00093cb4 + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" { (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" identifier = (cast_expression "(int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" identifier (argument_list "(*(uint *)(DAT_00093cb4 + 0x68) << 3)" ( (binary_expression "*(uint *)(DAT_00093cb4 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" * (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x68)" ( (binary_expression "DAT_00093cb4 + 0x68" identifier + number_literal) )))) << number_literal) ))))) ;) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = *(int *)(DAT_00093cb4 + 0x60);" (assignment_expression "iVar7 = *(int *)(DAT_00093cb4 + 0x60)" identifier = (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" * (cast_expression "(int *)(DAT_00093cb4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00093cb4 + 0x60)" ( (binary_expression "DAT_00093cb4 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" { (do_statement "do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);" do (compound_statement "{\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        }" { (if_statement "if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" if (parenthesized_expression "((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0))" ( (binary_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" (parenthesized_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))" ( (binary_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 1)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 1" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" ( (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x402)" ( (binary_expression "*(uint *)(iVar7 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar7 + 0x14)" * (cast_expression "(uint *)(iVar7 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" ( (binary_expression "*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0" (binary_expression "*(int *)(iVar7 + 0x30) != 0" (pointer_expression "*(int *)(iVar7 + 0x30)" * (cast_expression "(int *)(iVar7 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) != number_literal) || (binary_expression "*(int *)(iVar7 + 0x2c) != 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" * (cast_expression "(int *)(iVar7 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" { (expression_statement "iVar11 = uVar29 * 2;" (assignment_expression "iVar11 = uVar29 * 2" identifier = (binary_expression "uVar29 * 2" identifier * number_literal)) ;) (expression_statement "uVar29 = uVar29 + 1;" (assignment_expression "uVar29 = uVar29 + 1" identifier = (binary_expression "uVar29 + 1" identifier + number_literal)) ;) (expression_statement "piVar24[iVar11] = iVar7;" (assignment_expression "piVar24[iVar11] = iVar7" (subscript_expression "piVar24[iVar11]" identifier [ identifier ]) = identifier) ;) (expression_statement "(piVar24 + iVar11)[1] = 0;" (assignment_expression "(piVar24 + iVar11)[1] = 0" (subscript_expression "(piVar24 + iVar11)[1]" (parenthesized_expression "(piVar24 + iVar11)" ( (binary_expression "piVar24 + iVar11" identifier + identifier) )) [ number_literal ]) = number_literal) ;) })) (expression_statement "iVar7 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (if_statement "if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" if (parenthesized_expression "(1 < uVar29)" ( (binary_expression "1 < uVar29" number_literal < identifier) )) (compound_statement "{\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" { (expression_statement "qsort(piVar24,uVar29,8,FUN_0001def0);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001def0)" identifier (argument_list "(piVar24,uVar29,8,FUN_0001def0)" ( identifier , identifier , number_literal , identifier ))) ;) (expression_statement "local_4c = (undefined4 *)0x0;" (assignment_expression "local_4c = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" identifier = identifier) ;) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);" do (compound_statement "{\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          }" { (while_statement "while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" while (parenthesized_expression "(puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0)" ( (comma_expression "puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar22 = (undefined4 *)*piVar26" identifier = (cast_expression "(undefined4 *)*piVar26" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar26" * identifier))) , (comma_expression "puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar6 = puVar15" identifier = identifier) , (comma_expression "uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar35 = local_5c" identifier = identifier) , (comma_expression "uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar34 = local_58" identifier = identifier) , (comma_expression "puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar4 = local_4c" identifier = identifier) , (comma_expression "uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar30 = local_48" identifier = identifier) , (binary_expression "(*(byte *)(puVar22 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar22 + 5) & 2)" ( (binary_expression "*(byte *)(puVar22 + 5) & 2" (pointer_expression "*(byte *)(puVar22 + 5)" * (cast_expression "(byte *)(puVar22 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22 + 5)" ( (binary_expression "puVar22 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal))))))) )) (compound_statement "{\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" { (expression_statement "puVar4 = (undefined4 *)puVar22[9];" (assignment_expression "puVar4 = (undefined4 *)puVar22[9]" identifier = (cast_expression "(undefined4 *)puVar22[9]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[9]" identifier [ number_literal ]))) ;) (expression_statement "uVar30 = puVar22[10];" (assignment_expression "uVar30 = puVar22[10]" identifier = (subscript_expression "puVar22[10]" identifier [ number_literal ])) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar22[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar22[0xb] >> bVar39" (cast_expression "(uint)puVar22[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar22[0xc] << 0x20 - bVar39" (subscript_expression "puVar22[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar35;" (assignment_expression "uVar34 = uVar35" identifier = identifier) ;) })) (expression_statement "uVar35 = uVar34 + ((int)puVar4 - 1U);" (assignment_expression "uVar35 = uVar34 + ((int)puVar4 - 1U)" identifier = (binary_expression "uVar34 + ((int)puVar4 - 1U)" identifier + (parenthesized_expression "((int)puVar4 - 1U)" ( (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(puVar4 != (undefined4 *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) + (cast_expression "(uint)CARRY4(uVar34,(int)puVar4 - 1U)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,(int)puVar4 - 1U)" identifier (argument_list "(uVar34,(int)puVar4 - 1U)" ( identifier , (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))))) ;) (expression_statement "puVar6 = puVar22;" (assignment_expression "puVar6 = puVar22" identifier = identifier) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" if (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)))" ( (binary_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30)" ( (binary_expression "uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < puVar4) <= local_58 - uVar30" (call_expression "(uint)(local_5c < puVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < puVar4)" ( (binary_expression "local_5c < puVar4" identifier < identifier) ))) <= (binary_expression "local_58 - uVar30" identifier - identifier))) )) || (parenthesized_expression "(local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" ( (binary_expression "local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 < local_48" identifier < identifier) || (binary_expression "local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 - local_48" identifier - identifier) < (call_expression "(uint)(local_5c < local_4c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_4c)" ( (binary_expression "local_5c < local_4c" identifier < identifier) ))))) ))) )) (compound_statement "{\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" { (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" identifier (argument_list "(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" ( identifier , identifier , identifier , identifier , 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) ;) (break_statement "break;" break ;) })) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" identifier = identifier) ;) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" identifier = identifier) ;) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" identifier = identifier) ;) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" identifier = identifier) ;) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" identifier = identifier) ;) (if_statement "if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;" if (parenthesized_expression "(piVar24 + uVar29 * 2 == piVar26)" ( (binary_expression "piVar24 + uVar29 * 2 == piVar26" (binary_expression "piVar24 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal)) == identifier) )) (goto_statement "goto LAB_0002a3c8;" goto statement_identifier ;)) })) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" identifier = identifier) ;) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" identifier = identifier) ;) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" identifier = identifier) ;) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" identifier = identifier) ;) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" identifier = identifier) ;) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" identifier = (binary_expression "piVar26 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar24 + uVar29 * 2 != piVar26)" ( (binary_expression "piVar24 + uVar29 * 2 != piVar26" (binary_expression "piVar24 + uVar29 * 2" identifier + (binary_expression "uVar29 * 2" identifier * number_literal)) != identifier) )) ;) (labeled_statement "LAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);" statement_identifier : (expression_statement "qsort(piVar24,uVar29,8,FUN_0001df40);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001df40)" identifier (argument_list "(piVar24,uVar29,8,FUN_0001df40)" ( identifier , identifier , number_literal , identifier ))) ;)) (expression_statement "puVar15 = (undefined4 *)*piVar24;" (assignment_expression "puVar15 = (undefined4 *)*piVar24" identifier = (cast_expression "(undefined4 *)*piVar24" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar24" * identifier))) ;) (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" identifier = number_literal) ;) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" identifier = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" identifier = identifier) ;) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" identifier = identifier) ;) (do_statement "do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);" do (compound_statement "{\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          }" { (expression_statement "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);" (assignment_expression "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c)" identifier = (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x1c)" * (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[uVar36 * 2] + 0x1c)" ( (binary_expression "piVar24[uVar36 * 2] + 0x1c" (subscript_expression "piVar24[uVar36 * 2]" identifier [ (binary_expression "uVar36 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);" (assignment_expression "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20)" identifier = (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x20)" * (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24[uVar36 * 2] + 0x20)" ( (binary_expression "piVar24[uVar36 * 2] + 0x20" (subscript_expression "piVar24[uVar36 * 2]" identifier [ (binary_expression "uVar36 * 2" identifier * number_literal) ]) + number_literal) ))))) ;) (if_statement "if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;" if (parenthesized_expression "(uVar34 == uVar5 && uVar31 == uVar18)" ( (binary_expression "uVar34 == uVar5 && uVar31 == uVar18" (binary_expression "uVar34 == uVar5" identifier == identifier) && (binary_expression "uVar31 == uVar18" identifier == identifier)) )) (goto_statement "goto LAB_0002a9b9;" goto statement_identifier ;)) (expression_statement "uVar36 = uVar36 + 1;" (assignment_expression "uVar36 = uVar36 + 1" identifier = (binary_expression "uVar36 + 1" identifier + number_literal)) ;) (expression_statement "uVar34 = uVar5;" (assignment_expression "uVar34 = uVar5" identifier = identifier) ;) (expression_statement "uVar31 = uVar18;" (assignment_expression "uVar31 = uVar18" identifier = identifier) ;) }) while (parenthesized_expression "(uVar36 != uVar29)" ( (binary_expression "uVar36 != uVar29" identifier != identifier) )) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" identifier = identifier) ;) })) (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" identifier = (binary_expression "uVar34 + (uVar35 - 1)" identifier + (parenthesized_expression "(uVar35 - 1)" ( (binary_expression "uVar35 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )))) + (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35 - 1)" identifier (argument_list "(uVar34,uVar35 - 1)" ( identifier , (binary_expression "uVar35 - 1" identifier - number_literal) )))))) ;) (while_statement "while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" while (parenthesized_expression "(local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)" ( (comma_expression "local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_4c = puVar15" identifier = identifier) , (comma_expression "local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_50 = uVar30" identifier = identifier) , (comma_expression "local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_54 = uVar35" identifier = identifier) , (comma_expression "local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_58 = uVar34" identifier = identifier) , (comma_expression "local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_5c = uVar36" identifier = identifier) , (comma_expression "local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" identifier = (cast_expression "(int *)((int)local_6c + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_6c + 1)" ( (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "local_6c != (int *)uVar29" identifier != (cast_expression "(int *)uVar29" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)))))))) )) (compound_statement "{\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" { (expression_statement "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];" (assignment_expression "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2]" identifier = (cast_expression "(undefined4 *)piVar24[(int)local_6c * 2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar24[(int)local_6c * 2]" identifier [ (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ]))) ;) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" identifier = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" identifier = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" identifier = (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" identifier = (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xc]" identifier [ number_literal ])) >> (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" ( (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" identifier = identifier) ;) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" identifier = (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) >> identifier) | (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" identifier [ number_literal ]) << (binary_expression "0x20 - bVar39" number_literal - identifier)))) ;) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" if (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" ( (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" ( (binary_expression "DAT_0009386c & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" identifier = identifier) ;) })) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" identifier = (binary_expression "uVar34 + (uVar35 - 1)" identifier + (parenthesized_expression "(uVar35 - 1)" ( (binary_expression "uVar35 - 1" identifier - number_literal) )))) ;) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" identifier = (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" identifier + (parenthesized_expression "(uVar30 - 1)" ( (binary_expression "uVar30 - 1" identifier - number_literal) ))) + (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )))) + (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar34,uVar35 - 1)" identifier (argument_list "(uVar34,uVar35 - 1)" ( identifier , (binary_expression "uVar35 - 1" identifier - number_literal) )))))) ;) (if_statement "if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" if (parenthesized_expression "((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))))" ( (binary_expression "(piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" (parenthesized_expression "(piVar24[(int)local_6c * 2 + 1] == 0)" ( (binary_expression "piVar24[(int)local_6c * 2 + 1] == 0" (subscript_expression "piVar24[(int)local_6c * 2 + 1]" identifier [ (binary_expression "(int)local_6c * 2 + 1" (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == number_literal) )) && (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" ( (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))" ( (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" identifier <= identifier) && (binary_expression "(uint)(local_5c < uVar35) <= local_58 - uVar30" (call_expression "(uint)(local_5c < uVar35)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < uVar35)" ( (binary_expression "local_5c < uVar35" identifier < identifier) ))) <= (binary_expression "local_58 - uVar30" identifier - identifier))) || (parenthesized_expression "(local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" ( (binary_expression "local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 < local_50" identifier < identifier) || (binary_expression "local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 - local_50" identifier - identifier) < (call_expression "(uint)(local_5c < local_54)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_5c < local_54)" ( (binary_expression "local_5c < local_54" identifier < identifier) ))))) ))) )) ))) )) (compound_statement "{\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = *local_4c;" (assignment_expression "uVar14 = *local_4c" identifier = (pointer_expression "*local_4c" * identifier)) ;) (expression_statement "uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" identifier (argument_list "(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) })) (labeled_statement "LAB_0002a9b9:\n          free(piVar24);" statement_identifier : (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;)) (for_statement "for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" for ( (assignment_expression "puVar22 = DAT_0009384c" identifier = identifier) ; (comma_expression "puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) , (binary_expression "puVar22 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ; (assignment_expression "puVar22 = (undefined4 *)puVar22[2]" identifier = (cast_expression "(undefined4 *)puVar22[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar22[2]" identifier [ number_literal ]))) ) (compound_statement "{\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" { (if_statement "if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" if (parenthesized_expression "(puVar22[0xe] != 0)" ( (binary_expression "puVar22[0xe] != 0" (subscript_expression "puVar22[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" { (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);" (assignment_expression "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4])" identifier = (binary_expression "puVar22[9] - (puVar22[6] + puVar22[4])" (subscript_expression "puVar22[9]" identifier [ number_literal ]) - (parenthesized_expression "(puVar22[6] + puVar22[4])" ( (binary_expression "puVar22[6] + puVar22[4]" (subscript_expression "puVar22[6]" identifier [ number_literal ]) + (subscript_expression "puVar22[4]" identifier [ number_literal ])) )))) ;) (expression_statement "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);" (assignment_expression "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,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",iVar7,5)" identifier (argument_list "(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,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_00032ba0(uVar14,uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar14,uVar8,iVar7)" identifier (argument_list "(uVar14,uVar8,iVar7)" ( identifier , identifier , identifier ))) ;) })) })) (goto_statement "goto joined_r0x000296eb;" goto statement_identifier ;) })) })) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" identifier (argument_list "(piVar24)" ( identifier ))) ;) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" identifier = identifier) ;) })) })) (labeled_statement "joined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" statement_identifier : (for_statement "for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" for ( ; (binary_expression "puVar15 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "puVar15 = (undefined4 *)puVar15[1]" identifier = (cast_expression "(undefined4 *)puVar15[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) ) (compound_statement "{\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" { (expression_statement "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);" (assignment_expression "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" identifier (argument_list "(DAT_00093ca0,*puVar15,0,0,1)" ( identifier , (pointer_expression "*puVar15" * identifier) , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" if (parenthesized_expression "((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)))" ( (binary_expression "(iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" ( (binary_expression "1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)" number_literal < (call_expression "(byte)(*(char *)(iVar7 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar7 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar7 + 0xc) - 3U" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) - number_literal) )))) ))) )) (compound_statement "{\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" { (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) })) }))) (expression_statement "iVar7 = DAT_00093c1c;" (assignment_expression "iVar7 = DAT_00093c1c" identifier = identifier) ;) (if_statement "if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }" if (parenthesized_expression "(((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3))" ( (binary_expression "((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)" (parenthesized_expression "((DAT_00093c80 & 0x43) != 2)" ( (binary_expression "(DAT_00093c80 & 0x43) != 2" (parenthesized_expression "(DAT_00093c80 & 0x43)" ( (binary_expression "DAT_00093c80 & 0x43" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((DAT_00093c80 & 3) != 3)" ( (binary_expression "(DAT_00093c80 & 3) != 3" (parenthesized_expression "(DAT_00093c80 & 3)" ( (binary_expression "DAT_00093c80 & 3" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n    iVar7 = 1;\n  }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) })) (if_statement "if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" if (parenthesized_expression "(((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0))" ( (binary_expression "((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)" (parenthesized_expression "((DAT_00093c80 & 0x43) == 0x42)" ( (binary_expression "(DAT_00093c80 & 0x43) == 0x42" (parenthesized_expression "(DAT_00093c80 & 0x43)" ( (binary_expression "DAT_00093c80 & 0x43" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(DAT_00093c1c == 0 && DAT_00093c18 == 0)" ( (binary_expression "DAT_00093c1c == 0 && DAT_00093c18 == 0" (binary_expression "DAT_00093c1c == 0" identifier == number_literal) && (binary_expression "DAT_00093c18 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" { (expression_statement "uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) })) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" if (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" ( (binary_expression "DAT_000937f8 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" { (expression_statement "DAT_000937f8 = PTR_s_start_00093340;" (assignment_expression "DAT_000937f8 = PTR_s_start_00093340" identifier = identifier) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) })) (expression_statement "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);" (assignment_expression "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" identifier = (call_expression "bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" identifier (argument_list "(DAT_00093ca0,DAT_000937f8,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" if (parenthesized_expression "((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2))" ( (binary_expression "(iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar11 != 0)" ( (binary_expression "iVar11 != 0" identifier != number_literal) )) && (parenthesized_expression "((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" ( (binary_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(*(char *)(iVar11 + 0xc) - 3U)" ( (binary_expression "*(char *)(iVar11 + 0xc) - 3U" (pointer_expression "*(char *)(iVar11 + 0xc)" * (cast_expression "(char *)(iVar11 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) - number_literal) ))) < number_literal) ))) )) (compound_statement "{\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" { (expression_statement "iVar10 = *(int *)(iVar11 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar11 + 0x14)" identifier = (pointer_expression "*(int *)(iVar11 + 0x14)" * (cast_expression "(int *)(iVar11 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x14)" ( (binary_expression "iVar11 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(iVar10 + 0x54);" (assignment_expression "iVar25 = *(int *)(iVar10 + 0x54)" identifier = (pointer_expression "*(int *)(iVar10 + 0x54)" * (cast_expression "(int *)(iVar10 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x54)" ( (binary_expression "iVar10 + 0x54" identifier + number_literal) ))))) ;) (if_statement "if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" if (parenthesized_expression "(iVar25 != 0)" ( (binary_expression "iVar25 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" { (expression_statement "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" identifier = (binary_expression "*(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))))) ;) (expression_statement "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));" (assignment_expression "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" identifier = (call_expression "bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" identifier (argument_list "(DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" ( identifier , (binary_expression "uVar29 + *(uint *)(iVar25 + 0x1c)" identifier + (pointer_expression "*(uint *)(iVar25 + 0x1c)" * (cast_expression "(uint *)(iVar25 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x1c)" ( (binary_expression "iVar25 + 0x1c" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20)" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c)" (pointer_expression "*(int *)(iVar10 + 0x50)" * (cast_expression "(int *)(iVar10 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x50)" ( (binary_expression "iVar10 + 0x50" identifier + number_literal) )))) + (pointer_expression "*(int *)(iVar11 + 0x1c)" * (cast_expression "(int *)(iVar11 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" identifier (argument_list "(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" ( (pointer_expression "*(uint *)(iVar10 + 0x4c)" * (cast_expression "(uint *)(iVar10 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4c)" ( (binary_expression "iVar10 + 0x4c" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar11 + 0x18)" * (cast_expression "(uint *)(iVar11 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x18)" ( (binary_expression "iVar11 + 0x18" identifier + number_literal) )))) ))))) + (pointer_expression "*(int *)(iVar25 + 0x20)" * (cast_expression "(int *)(iVar25 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x20)" ( (binary_expression "iVar25 + 0x20" identifier + number_literal) ))))) + (cast_expression "(uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" identifier (argument_list "(uVar29,*(uint *)(iVar25 + 0x1c))" ( identifier , (pointer_expression "*(uint *)(iVar25 + 0x1c)" * (cast_expression "(uint *)(iVar25 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 + 0x1c)" ( (binary_expression "iVar25 + 0x1c" identifier + number_literal) )))) ))))) )))) ;) (if_statement "if (iVar7 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar12 = "%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_00029b59;" goto statement_identifier ;) })) })) (expression_statement "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);" (assignment_expression "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0)" identifier = (call_expression "bfd_scan_vma(DAT_000937f8,local_20,0)" identifier (argument_list "(DAT_000937f8,local_20,0)" ( identifier , identifier , number_literal )))) ;) (if_statement "if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 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    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }" { (expression_statement "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);" (assignment_expression "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" identifier = (call_expression "bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" identifier (argument_list "(DAT_00093cb4,PTR_s__text_00093334)" ( identifier , identifier )))) ;) (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" identifier = identifier) ;) (if_statement "if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" { (if_statement "if (iVar7 == 0) {\n        return;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar12 = "%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_00029b59:\n      puVar17 = DAT_000937f8;" statement_identifier : (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" identifier = identifier) ;)) (expression_statement "uVar8 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar8 = dcgettext(0,pcVar12,5)" identifier = (call_expression "dcgettext(0,pcVar12,5)" identifier (argument_list "(0,pcVar12,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00032ba0(uVar8,puVar17);" (call_expression "FUN_00032ba0(uVar8,puVar17)" identifier (argument_list "(uVar8,puVar17)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar8 = *(undefined4 *)(iVar11 + 0x1c);" (assignment_expression "uVar8 = *(undefined4 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" * (cast_expression "(undefined4 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(undefined4 *)(iVar11 + 0x20);" (assignment_expression "uVar14 = *(undefined4 *)(iVar11 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" * (cast_expression "(undefined4 *)(iVar11 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x20)" ( (binary_expression "iVar11 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" * (cast_expression "(undefined8 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" { (expression_statement "uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar20 = 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_00032ba0(uVar20,puVar17,uVar8,uVar14);" (call_expression "FUN_00032ba0(uVar20,puVar17,uVar8,uVar14)" identifier (argument_list "(uVar20,puVar17,uVar8,uVar14)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" identifier = (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" * (cast_expression "(undefined8 *)(iVar11 + 0x1c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x1c)" ( (binary_expression "iVar11 + 0x1c" identifier + number_literal) ))))) ;) })) })) (expression_statement "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);" (assignment_expression "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40)" identifier = (call_expression "bfd_set_start_address(DAT_00093cb4,uVar40)" identifier (argument_list "(DAT_00093cb4,uVar40)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != 0) {\n    return;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" identifier (argument_list "(uVar8)" ( identifier ))) ;) (return_statement "return;" return ;) (labeled_statement "LAB_00028dd0:\n  uVar8 = *puVar15;" statement_identifier : (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;)) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar14 = 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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" identifier (argument_list "(uVar14,uVar8)" ( identifier , identifier ))) ;) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" identifier = (cast_expression "(undefined4 *)puVar15[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[2]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x00028c51;" goto statement_identifier ;) (labeled_statement "code_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" statement_identifier : (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80)" (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 "(puVar15,&DAT_00093c80)" ( identifier , (pointer_expression "&DAT_00093c80" & identifier) ))) ;)) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" identifier = (cast_expression "(undefined4 *)puVar15[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[3]" identifier [ number_literal ]))) ;) (goto_statement "goto joined_r0x000290b4;" goto statement_identifier ;) (labeled_statement "code_r0x00029557:\n  iVar7 = piVar24[6];" statement_identifier : (expression_statement "iVar7 = piVar24[6];" (assignment_expression "iVar7 = piVar24[6]" identifier = (subscript_expression "piVar24[6]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar8 = 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_00032ba0(uVar8,iVar7,pbVar3);" (call_expression "FUN_00032ba0(uVar8,iVar7,pbVar3)" identifier (argument_list "(uVar8,iVar7,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_r0x0002951b;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 IDENT & 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 { (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) ;) (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 (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 ]))) ;) }) 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 ( ))) ;) (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 { (labeled_statement 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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)) )) (break_statement break ;))) (goto_statement goto statement_identifier ;) }))) (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 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 { (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 = (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) ))))) ;) }) (else_clause else (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 ;)) }))) (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 ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (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 ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression 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 ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 = (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression 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 , 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)) ;) })) (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) ;) (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) ;) (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 ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (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 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 = 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 != (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (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)) ;)) }))) (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 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 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 , 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 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 , 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 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 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 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 , 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 , 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 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 IDENT = (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) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << (binary_expression 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 & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (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 = (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 = (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (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) ))) | (binary_expression IDENT << (binary_expression 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 & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (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) )))) = 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) ;) (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 = (binary_expression (binary_expression (binary_expression IDENT - LIT) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) )) << LIT) | (binary_expression IDENT >> LIT)) )) - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (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 (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT & (subscript_expression IDENT [ LIT ]))) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & IDENT) ))) ))) <= (binary_expression IDENT - IDENT)))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (binary_expression IDENT + IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & IDENT)) , (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & IDENT) ))) ))) <= (binary_expression 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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) || (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = 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 IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> IDENT) | (binary_expression (subscript_expression IDENT [ LIT ]) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) == IDENT) )) (goto_statement goto statement_identifier ;)) })) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) != IDENT) )) ;) (labeled_statement statement_identifier : (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (binary_expression IDENT == IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> IDENT) | (binary_expression (subscript_expression IDENT [ LIT ]) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (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)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression 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 = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (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) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> IDENT) | (binary_expression (subscript_expression IDENT [ LIT ]) << (binary_expression LIT - IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) || (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 , 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 IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression 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 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 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 IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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 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 ))) ;) (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 = (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_00028810(void)\n\n{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" (primitive_type "void") (function_declarator "FUN_00028810(void)" (identifier "FUN_00028810") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  byte *pbVar3;\n  undefined4 *puVar4;\n  uint uVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 uVar8;\n  size_t sVar9;\n  int iVar10;\n  int iVar11;\n  char *pcVar12;\n  char *pcVar13;\n  undefined4 uVar14;\n  undefined4 *puVar15;\n  int *piVar16;\n  undefined *puVar17;\n  uint uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte bVar21;\n  undefined4 *puVar22;\n  int *piVar23;\n  int *piVar24;\n  int iVar25;\n  int *piVar26;\n  int *piVar27;\n  int iVar28;\n  uint uVar29;\n  uint uVar30;\n  uint uVar31;\n  int *piVar32;\n  byte *pbVar33;\n  uint uVar34;\n  uint uVar35;\n  uint uVar36;\n  bool bVar37;\n  bool bVar38;\n  byte bVar39;\n  undefined8 uVar40;\n  int *local_6c;\n  void *local_64;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  undefined4 *local_4c;\n  uint local_48;\n  uint local_44;\n  char *local_20 [3];\n  undefined4 uStack_14;\n  \n  bVar39 = 0;\n  uStack_14 = 0x28819;\n  if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00021b90(FUN_00024b50,DAT_000938a8);\n  FUN_0001f3d0();\n  FUN_000314e0();\n  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }\n  iVar7 = bfd_section_already_linked_table_init();\n  if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  DAT_000937e0 = DAT_000937e0 + 1;\n  DAT_000938b0 = DAT_00093df4;\n  FUN_00026280();\n  piVar27 = DAT_00093c28;\n  piVar23 = DAT_00093c24;\n  piVar26 = DAT_00093800;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }\n  if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }\n  DAT_00093cc8 = &DAT_000937f4;\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }\n  if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }\n  if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }\n  FUN_000313f0();\n  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }\n  bfd_section_already_linked_table_free();\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }\n  if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }\n  FUN_0002ba20();\n  puVar17 = PTR__sch_istable_00092f98;\n  if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }\n  FUN_00025190(1);\n  puVar15 = DAT_0009384c;\njoined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }\n  DAT_00093e20 = 0;\n  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }\n  FUN_00025db0();\n  bVar21 = DAT_00093c80;\n  piVar24 = DAT_000937fc;\n  if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }\n  if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }\n  iVar7 = DAT_00093cbc;\n  if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }\n  FUN_00031410();\n  piVar26 = (int *)0x0;\n  FUN_0001e100();\n  DAT_000937e0 = DAT_000937e0 + 1;\n  FUN_00025ed0();\n  piVar23 = (int *)0x0;\n  piVar24 = (int *)*DAT_00093c40;\n  if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }\n  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }\n  bVar21 = DAT_00093c80 & 3;\n  piVar24 = DAT_0009382c;\n  piVar26 = DAT_00093c40;\n  iVar7 = DAT_00093cb4;\n  if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }\n  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }\n  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }\n  FUN_00031450();\n  piVar24 = (int *)0x0;\n  local_64 = (void *)xmalloc(0x28);\n  local_44 = 10;\n  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }\n  free(local_64);\n  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }\n  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }\n  FUN_000269b0(0,1 < DAT_00093c98);\n  FUN_00031430();\n  iVar7 = DAT_00093cb4;\n  uVar29 = DAT_0009386c;\n  if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }\nLAB_000296b8:\n  FUN_00025190(4);\n  FUN_00031490();\n  FUN_00031320();\n  puVar15 = DAT_0009383c;\n  if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }\njoined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }\n  iVar7 = DAT_00093c1c;\n  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }\n  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }\n  if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }\n  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);\n  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }\n  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);\n  if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }\n  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);\n  if (iVar7 != 0) {\n    return;\n  }\n  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);\n  FUN_00032ba0(uVar8);\n  return;\nLAB_00028dd0:\n  uVar8 = *puVar15;\n  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);\n  FUN_00032ba0(uVar14,uVar8);\n  puVar15 = (undefined4 *)puVar15[2];\n  goto joined_r0x00028c51;\ncode_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);\n  puVar15 = (undefined4 *)puVar15[3];\n  goto joined_r0x000290b4;\ncode_r0x00029557:\n  iVar7 = piVar24[6];\n  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);\n  FUN_00032ba0(uVar8,iVar7,pbVar3);\n  piVar26 = (int *)*piVar26;\n  goto joined_r0x0002951b;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "size_t sVar9;" (primitive_type "size_t") (identifier "sVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "undefined4 uVar14;" (type_identifier "undefined4") (identifier "uVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (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 "uint uVar29;" (type_identifier "uint") (identifier "uVar29") (; ";")) (declaration "uint uVar30;" (type_identifier "uint") (identifier "uVar30") (; ";")) (declaration "uint uVar31;" (type_identifier "uint") (identifier "uVar31") (; ";")) (declaration "int *piVar32;" (primitive_type "int") (pointer_declarator "*piVar32" (* "*") (identifier "piVar32")) (; ";")) (declaration "byte *pbVar33;" (type_identifier "byte") (pointer_declarator "*pbVar33" (* "*") (identifier "pbVar33")) (; ";")) (declaration "uint uVar34;" (type_identifier "uint") (identifier "uVar34") (; ";")) (declaration "uint uVar35;" (type_identifier "uint") (identifier "uVar35") (; ";")) (declaration "uint uVar36;" (type_identifier "uint") (identifier "uVar36") (; ";")) (declaration "bool bVar37;" (primitive_type "bool") (identifier "bVar37") (; ";")) (declaration "bool bVar38;" (primitive_type "bool") (identifier "bVar38") (; ";")) (declaration "byte bVar39;" (type_identifier "byte") (identifier "bVar39") (; ";")) (declaration "undefined8 uVar40;" (type_identifier "undefined8") (identifier "uVar40") (; ";")) (declaration "int *local_6c;" (primitive_type "int") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "void *local_64;" (primitive_type "void") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "undefined4 *local_4c;" (type_identifier "undefined4") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (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 "bVar39 = 0;" (assignment_expression "bVar39 = 0" (identifier "bVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x28819;" (assignment_expression "uStack_14 = 0x28819" (identifier "uStack_14") (= "=") (number_literal "0x28819")) (; ";")) (if_statement "if (DAT_00093d14 != 0) {\n    FUN_0001ea90();\n  }" (if "if") (parenthesized_expression "(DAT_00093d14 != 0)" (( "(") (binary_expression "DAT_00093d14 != 0" (identifier "DAT_00093d14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0001ea90();\n  }" ({ "{") (expression_statement "FUN_0001ea90();" (call_expression "FUN_0001ea90()" (identifier "FUN_0001ea90") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" (identifier "DAT_000938b0") (= "=") (identifier "DAT_00093df4")) (; ";")) (expression_statement "FUN_00021b90(FUN_00024b50,DAT_000938a8);" (call_expression "FUN_00021b90(FUN_00024b50,DAT_000938a8)" (identifier "FUN_00021b90") (argument_list "(FUN_00024b50,DAT_000938a8)" (( "(") (identifier "FUN_00024b50") (, ",") (identifier "DAT_000938a8") () ")"))) (; ";")) (expression_statement "FUN_0001f3d0();" (call_expression "FUN_0001f3d0()" (identifier "FUN_0001f3d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000314e0();" (call_expression "FUN_000314e0()" (identifier "FUN_000314e0") (argument_list "()" (( "(") () ")"))) (; ";")) (for_statement "for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    FUN_0001e860();\n  }" (for "for") (( "(") (assignment_expression "puVar15 = DAT_000937f4" (identifier "puVar15") (= "=") (identifier "DAT_000937f4")) (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)*puVar15" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) () ")") (compound_statement "{\n    FUN_0001e860();\n  }" ({ "{") (expression_statement "FUN_0001e860();" (call_expression "FUN_0001e860()" (identifier "FUN_0001e860") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_section_already_linked_table_init();" (assignment_expression "iVar7 = bfd_section_already_linked_table_init()" (identifier "iVar7") (= "=") (call_expression "bfd_section_already_linked_table_init()" (identifier "bfd_section_already_linked_table_init") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);\n    FUN_00032ba0(uVar8);\n  }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" (identifier "DAT_000937e0") (= "=") (binary_expression "DAT_000937e0 + 1" (identifier "DAT_000937e0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_000938b0 = DAT_00093df4;" (assignment_expression "DAT_000938b0 = DAT_00093df4" (identifier "DAT_000938b0") (= "=") (identifier "DAT_00093df4")) (; ";")) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" (identifier "FUN_00026280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar27 = DAT_00093c28;" (assignment_expression "piVar27 = DAT_00093c28" (identifier "piVar27") (= "=") (identifier "DAT_00093c28")) (; ";")) (expression_statement "piVar23 = DAT_00093c24;" (assignment_expression "piVar23 = DAT_00093c24" (identifier "piVar23") (= "=") (identifier "DAT_00093c24")) (; ";")) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" (identifier "piVar26") (= "=") (identifier "DAT_00093800")) (; ";")) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";")) (if_statement "if ((DAT_00093c81 & 2) != 0) {\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00093c81 & 2) != 0)" (( "(") (binary_expression "(DAT_00093c81 & 2) != 0" (parenthesized_expression "(DAT_00093c81 & 2)" (( "(") (binary_expression "DAT_00093c81 & 2" (identifier "DAT_00093c81") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = *(int *)PTR_DAT_00093338;\n    piVar32 = *(int **)(PTR_DAT_00093338 + 4);\n    iVar11 = FUN_00036670();\n    if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n    FUN_00026280();\n    puVar17 = PTR_DAT_00093338;\n    if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar16 = *(int **)(puVar17 + 4);\n    iVar7 = *piVar32;\n    *(int **)(puVar17 + 4) = piVar32;\n    *piVar32 = 0;\n    if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar32 = DAT_00093800;\n    piVar24 = (int *)*piVar26;\n    DAT_00093800 = piVar26;\n    *piVar26 = 0;\n    if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }\n    piVar23 = DAT_00093c28;\n    iVar11 = *piVar27;\n    DAT_00093c28 = piVar27;\n    *piVar27 = 0;\n    piVar26 = DAT_000937fc;\n    piVar27 = DAT_00093c24;\n    if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar7 = *(int *)PTR_DAT_00093338;" (assignment_expression "iVar7 = *(int *)PTR_DAT_00093338" (identifier "iVar7") (= "=") (pointer_expression "*(int *)PTR_DAT_00093338" (* "*") (cast_expression "(int *)PTR_DAT_00093338" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00093338")))) (; ";")) (expression_statement "piVar32 = *(int **)(PTR_DAT_00093338 + 4);" (assignment_expression "piVar32 = *(int **)(PTR_DAT_00093338 + 4)" (identifier "piVar32") (= "=") (pointer_expression "*(int **)(PTR_DAT_00093338 + 4)" (* "*") (cast_expression "(int **)(PTR_DAT_00093338 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_00093338 + 4)" (( "(") (binary_expression "PTR_DAT_00093338 + 4" (identifier "PTR_DAT_00093338") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar11 = FUN_00036670();" (assignment_expression "iVar11 = FUN_00036670()" (identifier "iVar11") (= "=") (call_expression "FUN_00036670()" (identifier "FUN_00036670") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar11 != 0) {\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = FUN_00035fe0();\n      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" ({ "{") (expression_statement "uVar8 = FUN_00035fe0();" (assignment_expression "uVar8 = FUN_00035fe0()" (identifier "uVar8") (= "=") (call_expression "FUN_00035fe0()" (identifier "FUN_00035fe0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" (identifier "FUN_00026280") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" (identifier "puVar17") (= "=") (identifier "PTR_DAT_00093338")) (; ";")) (if_statement "if (*(int *)PTR_DAT_00093338 != iVar7) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_DAT_00093338 != iVar7)" (( "(") (binary_expression "*(int *)PTR_DAT_00093338 != iVar7" (pointer_expression "*(int *)PTR_DAT_00093338" (* "*") (cast_expression "(int *)PTR_DAT_00093338" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_00093338"))) (!= "!=") (identifier "iVar7")) () ")")) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar16 = *(int **)(puVar17 + 4);" (assignment_expression "piVar16 = *(int **)(puVar17 + 4)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar17 + 4)" (* "*") (cast_expression "(int **)(puVar17 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 4)" (( "(") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar32;" (assignment_expression "iVar7 = *piVar32" (identifier "iVar7") (= "=") (pointer_expression "*piVar32" (* "*") (identifier "piVar32"))) (; ";")) (expression_statement "*(int **)(puVar17 + 4) = piVar32;" (assignment_expression "*(int **)(puVar17 + 4) = piVar32" (pointer_expression "*(int **)(puVar17 + 4)" (* "*") (cast_expression "(int **)(puVar17 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 4)" (( "(") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar32")) (; ";")) (expression_statement "*piVar32 = 0;" (assignment_expression "*piVar32 = 0" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_000937fc != piVar24) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_000937fc != piVar24)" (( "(") (binary_expression "DAT_000937fc != piVar24" (identifier "DAT_000937fc") (!= "!=") (identifier "piVar24")) () ")")) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" (identifier "piVar32") (= "=") (identifier "DAT_00093800")) (; ";")) (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_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" (identifier "DAT_00093800") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00093c24 != piVar23) {\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" (if "if") (parenthesized_expression "(DAT_00093c24 != piVar23)" (( "(") (binary_expression "DAT_00093c24 != piVar23" (identifier "DAT_00093c24") (!= "!=") (identifier "piVar23")) () ")")) (compound_statement "{\n      FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n    }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar23 = DAT_00093c28;" (assignment_expression "piVar23 = DAT_00093c28" (identifier "piVar23") (= "=") (identifier "DAT_00093c28")) (; ";")) (expression_statement "iVar11 = *piVar27;" (assignment_expression "iVar11 = *piVar27" (identifier "iVar11") (= "=") (pointer_expression "*piVar27" (* "*") (identifier "piVar27"))) (; ";")) (expression_statement "DAT_00093c28 = piVar27;" (assignment_expression "DAT_00093c28 = piVar27" (identifier "DAT_00093c28") (= "=") (identifier "piVar27")) (; ";")) (expression_statement "*piVar27 = 0;" (assignment_expression "*piVar27 = 0" (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar26 = DAT_000937fc;" (assignment_expression "piVar26 = DAT_000937fc" (identifier "piVar26") (= "=") (identifier "DAT_000937fc")) (; ";")) (expression_statement "piVar27 = DAT_00093c24;" (assignment_expression "piVar27 = DAT_00093c24" (identifier "piVar27") (= "=") (identifier "DAT_00093c24")) (; ";")) (if_statement "if (iVar7 != 0) {\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }\n      piVar26 = DAT_00093840;\n      if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }\nLAB_00029ef1:\n      DAT_00093840 = piVar26;\n      piVar26 = DAT_00093840;\n      puVar17 = PTR_DAT_00093338;\n      *piVar16 = *DAT_00093840;\n      *piVar26 = iVar7;\n      if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }\n      *piVar23 = piVar26[7];\n      piVar26[7] = iVar11;\n      piVar27 = DAT_00093800;\n      if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }\n      if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      DAT_00093800 = piVar32;\n      piVar26 = DAT_00093800;\n      piVar24 = DAT_000937fc;\n      DAT_000937e0 = DAT_000937e0 + 1;\n      FUN_00026280();\n      if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }\n      iVar7 = *piVar26;\n      DAT_00093800 = piVar26;\n      *piVar26 = 0;\n      while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }\n    }" ({ "{") (for_statement "for (; DAT_00093840 = 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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" (for "for") (( "(") (; ";") (comma_expression "DAT_00093840 = piVar27, piVar26 != (int *)0x0" (assignment_expression "DAT_00093840 = piVar27" (identifier "DAT_00093840") (= "=") (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_00029ef1;\n          break;\n        }\n        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }\n        piVar27 = DAT_00093840;\n      }" ({ "{") (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {\n          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;\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_00029ef1;\n          break;\n        }" ({ "{") (if_statement "if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;" (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_00029ef1;" (goto "goto") (statement_identifier "LAB_00029ef1") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {\n          DAT_00093840 = piVar26;\n        }" (if "if") (parenthesized_expression "((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0))" (( "(") (binary_expression "(piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 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] + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(piVar26[4] + 0x8c) == 0" (pointer_expression "*(int *)(piVar26[4] + 0x8c)" (* "*") (cast_expression "(int *)(piVar26[4] + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar26[4] + 0x8c)" (( "(") (binary_expression "piVar26[4] + 0x8c" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          DAT_00093840 = piVar26;\n        }" ({ "{") (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" (identifier "DAT_00093840") (= "=") (identifier "piVar26")) (; ";")) (} "}"))) (expression_statement "piVar27 = DAT_00093840;" (assignment_expression "piVar27 = DAT_00093840" (identifier "piVar27") (= "=") (identifier "DAT_00093840")) (; ";")) (} "}"))) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" (identifier "piVar26") (= "=") (identifier "DAT_00093840")) (; ";")) (if_statement "if (DAT_00093840 == (int *)0x0) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" (if "if") (parenthesized_expression "(DAT_00093840 == (int *)0x0)" (( "(") (binary_expression "DAT_00093840 == (int *)0x0" (identifier "DAT_00093840") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1c32);\n        piVar26 = DAT_00093840;\n      }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c32);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c32)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1c32)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c32") () ")"))) (; ";")) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" (identifier "piVar26") (= "=") (identifier "DAT_00093840")) (; ";")) (} "}"))) (labeled_statement "LAB_00029ef1:\n      DAT_00093840 = piVar26;" (statement_identifier "LAB_00029ef1") (: ":") (expression_statement "DAT_00093840 = piVar26;" (assignment_expression "DAT_00093840 = piVar26" (identifier "DAT_00093840") (= "=") (identifier "piVar26")) (; ";"))) (expression_statement "piVar26 = DAT_00093840;" (assignment_expression "piVar26 = DAT_00093840" (identifier "piVar26") (= "=") (identifier "DAT_00093840")) (; ";")) (expression_statement "puVar17 = PTR_DAT_00093338;" (assignment_expression "puVar17 = PTR_DAT_00093338" (identifier "puVar17") (= "=") (identifier "PTR_DAT_00093338")) (; ";")) (expression_statement "*piVar16 = *DAT_00093840;" (assignment_expression "*piVar16 = *DAT_00093840" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (= "=") (pointer_expression "*DAT_00093840" (* "*") (identifier "DAT_00093840"))) (; ";")) (expression_statement "*piVar26 = iVar7;" (assignment_expression "*piVar26 = iVar7" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (piVar26 == *(int **)(puVar17 + 4)) {\n        *(int **)(puVar17 + 4) = piVar16;\n      }" (if "if") (parenthesized_expression "(piVar26 == *(int **)(puVar17 + 4))" (( "(") (binary_expression "piVar26 == *(int **)(puVar17 + 4)" (identifier "piVar26") (== "==") (pointer_expression "*(int **)(puVar17 + 4)" (* "*") (cast_expression "(int **)(puVar17 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 4)" (( "(") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4")) () ")"))))) () ")")) (compound_statement "{\n        *(int **)(puVar17 + 4) = piVar16;\n      }" ({ "{") (expression_statement "*(int **)(puVar17 + 4) = piVar16;" (assignment_expression "*(int **)(puVar17 + 4) = piVar16" (pointer_expression "*(int **)(puVar17 + 4)" (* "*") (cast_expression "(int **)(puVar17 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar17 + 4)" (( "(") (binary_expression "puVar17 + 4" (identifier "puVar17") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piVar16")) (; ";")) (} "}"))) (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] = iVar11;" (assignment_expression "piVar26[7] = iVar11" (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar27 = DAT_00093800;" (assignment_expression "piVar27 = DAT_00093800" (identifier "piVar27") (= "=") (identifier "DAT_00093800")) (; ";")) (if_statement "if (DAT_00093c28 == piVar26 + 7) {\n        DAT_00093c28 = piVar23;\n      }" (if "if") (parenthesized_expression "(DAT_00093c28 == piVar26 + 7)" (( "(") (binary_expression "DAT_00093c28 == piVar26 + 7" (identifier "DAT_00093c28") (== "==") (binary_expression "piVar26 + 7" (identifier "piVar26") (+ "+") (number_literal "7"))) () ")")) (compound_statement "{\n        DAT_00093c28 = piVar23;\n      }" ({ "{") (expression_statement "DAT_00093c28 = piVar23;" (assignment_expression "DAT_00093c28 = piVar23" (identifier "DAT_00093c28") (= "=") (identifier "piVar23")) (; ";")) (} "}"))) (if_statement "if (piVar26[2] == 0) {\n        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }\n      else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\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        *piVar32 = (int)DAT_000937fc;\n        DAT_000937fc = piVar24;\n        if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }\n      }" ({ "{") (expression_statement "*piVar32 = (int)DAT_000937fc;" (assignment_expression "*piVar32 = (int)DAT_000937fc" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (cast_expression "(int)DAT_000937fc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_000937fc"))) (; ";")) (expression_statement "DAT_000937fc = piVar24;" (assignment_expression "DAT_000937fc = piVar24" (identifier "DAT_000937fc") (= "=") (identifier "piVar24")) (; ";")) (if_statement "if ((int **)piVar27 != &DAT_000937fc) {\n          piVar32 = DAT_00093800;\n        }" (if "if") (parenthesized_expression "((int **)piVar27 != &DAT_000937fc)" (( "(") (binary_expression "(int **)piVar27 != &DAT_000937fc" (cast_expression "(int **)piVar27" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "piVar27")) (!= "!=") (pointer_expression "&DAT_000937fc" (& "&") (identifier "DAT_000937fc"))) () ")")) (compound_statement "{\n          piVar32 = DAT_00093800;\n        }" ({ "{") (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" (identifier "piVar32") (= "=") (identifier "DAT_00093800")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" (else "else") (compound_statement "{\n        *piVar32 = piVar26[6];\n        piVar26[6] = (int)piVar24;\n        if (piVar27 != piVar26 + 6) {\n          piVar32 = DAT_00093800;\n        }\n      }" ({ "{") (expression_statement "*piVar32 = piVar26[6];" (assignment_expression "*piVar32 = piVar26[6]" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (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          piVar32 = DAT_00093800;\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          piVar32 = DAT_00093800;\n        }" ({ "{") (expression_statement "piVar32 = DAT_00093800;" (assignment_expression "piVar32 = DAT_00093800" (identifier "piVar32") (= "=") (identifier "DAT_00093800")) (; ";")) (} "}"))) (} "}")))) (expression_statement "DAT_00093800 = piVar32;" (assignment_expression "DAT_00093800 = piVar32" (identifier "DAT_00093800") (= "=") (identifier "piVar32")) (; ";")) (expression_statement "piVar26 = DAT_00093800;" (assignment_expression "piVar26 = DAT_00093800" (identifier "piVar26") (= "=") (identifier "DAT_00093800")) (; ";")) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";")) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" (identifier "DAT_000937e0") (= "=") (binary_expression "DAT_000937e0 + 1" (identifier "DAT_000937e0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00026280();" (call_expression "FUN_00026280()" (identifier "FUN_00026280") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (DAT_000937fc != piVar24) {\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" (if "if") (parenthesized_expression "(DAT_000937fc != piVar24)" (( "(") (binary_expression "DAT_000937fc != piVar24" (identifier "DAT_000937fc") (!= "!=") (identifier "piVar24")) () ")")) (compound_statement "{\n        FUN_00032bf0("../../ld/ldlang.c",0x1baf);\n      }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1baf);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1baf)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1baf)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1baf") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = *piVar26;" (assignment_expression "iVar7 = *piVar26" (identifier "iVar7") (= "=") (pointer_expression "*piVar26" (* "*") (identifier "piVar26"))) (; ";")) (expression_statement "DAT_00093800 = piVar26;" (assignment_expression "DAT_00093800 = piVar26" (identifier "DAT_00093800") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "*piVar26 = 0;" (assignment_expression "*piVar26 = 0" (pointer_expression "*piVar26" (* "*") (identifier "piVar26")) (= "=") (number_literal "0")) (; ";")) (while_statement "while (iVar7 != 0) {\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);\n        iVar10 = *(int *)(iVar7 + 0x10);\n        if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }\n        piVar24 = DAT_000937fc;\n        if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }\n        piVar24 = piVar24 + 6;\n        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }\nLAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);\n        if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);" (assignment_expression "iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" (* "*") (cast_expression "(int *)(*(int *)(iVar7 + 0x10) + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar7 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(iVar7 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar10 = *(int *)(iVar7 + 0x10)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar11 != 0) {\n          iVar10 = iVar11;\n        }" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar10 = iVar11;\n        }" ({ "{") (expression_statement "iVar10 = iVar11;" (assignment_expression "iVar10 = iVar11" (identifier "iVar10") (= "=") (identifier "iVar11")) (; ";")) (} "}"))) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";")) (if_statement "if (DAT_00093c24 != (int *)0x0) {\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_00093c24 != (int *)0x0)" (( "(") (binary_expression "DAT_00093c24 != (int *)0x0" (identifier "DAT_00093c24") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          piVar23 = (int *)0x0;\n          local_6c = (int *)0x0;\n          piVar26 = DAT_00093c24;\n          do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);\nLAB_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\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_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" (identifier "local_6c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar26 = DAT_00093c24;" (assignment_expression "piVar26 = DAT_00093c24" (identifier "piVar26") (= "=") (identifier "DAT_00093c24")) (; ";")) (do_statement "do {\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          } while (piVar26 != (int *)0x0);" (do "do") (compound_statement "{\n            while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }\n            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {\n              piVar23 = piVar26;\n            }\n            piVar26 = (int *)piVar26[7];\n          }" ({ "{") (while_statement "while (piVar26[4] == iVar10) {\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" (while "while") (parenthesized_expression "(piVar26[4] == iVar10)" (( "(") (binary_expression "piVar26[4] == iVar10" (subscript_expression "piVar26[4]" (identifier "piVar26") ([ "[") (number_literal "4") (] "]")) (== "==") (identifier "iVar10")) () ")")) (compound_statement "{\n              iVar25 = piVar26[6];\n              if (iVar25 != 0) {\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }\n              piVar26 = (int *)piVar26[7];\n              local_6c = piVar23;\n              if (piVar26 == (int *)0x0) goto LAB_0002a010;\n            }" ({ "{") (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                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\n              }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                piVar24 = (int *)(iVar25 + 0x18);\n                iVar10 = *(int *)(iVar25 + 0x18);\n                goto LAB_0002a051;\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 "iVar10 = *(int *)(iVar25 + 0x18);" (assignment_expression "iVar10 = *(int *)(iVar25 + 0x18)" (identifier "iVar10") (= "=") (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_0002a051;" (goto "goto") (statement_identifier "LAB_0002a051") (; ";")) (} "}"))) (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_6c = piVar23;" (assignment_expression "local_6c = piVar23" (identifier "local_6c") (= "=") (identifier "piVar23")) (; ";")) (if_statement "if (piVar26 == (int *)0x0) goto LAB_0002a010;" (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_0002a010;" (goto "goto") (statement_identifier "LAB_0002a010") (; ";"))) (} "}"))) (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") (] "]")))) (; ";")) (} "}")) (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_0002a010:\n          if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" (statement_identifier "LAB_0002a010") (: ":") (if_statement "if (local_6c != (int *)0x0) {\n            piVar24 = local_6c;\n          }" (if "if") (parenthesized_expression "(local_6c != (int *)0x0)" (( "(") (binary_expression "local_6c != (int *)0x0" (identifier "local_6c") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            piVar24 = local_6c;\n          }" ({ "{") (expression_statement "piVar24 = local_6c;" (assignment_expression "piVar24 = local_6c" (identifier "piVar24") (= "=") (identifier "local_6c")) (; ";")) (} "}")))) (} "}"))) (expression_statement "piVar24 = piVar24 + 6;" (assignment_expression "piVar24 = piVar24 + 6" (identifier "piVar24") (= "=") (binary_expression "piVar24 + 6" (identifier "piVar24") (+ "+") (number_literal "6"))) (; ";")) (for_statement "for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" (for "for") (( "(") (assignment_expression "iVar10 = *piVar24" (identifier "iVar10") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar10 = *(int *)(iVar10 + 0x18)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar10 + 0x18)" (* "*") (cast_expression "(int *)(iVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")"))))) () ")") (compound_statement "{\n          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }\n          piVar24 = (int *)(iVar10 + 0x18);\n        }" ({ "{") (if_statement "if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {\n            iVar10 = *piVar24;\n            break;\n          }" (if "if") (parenthesized_expression "(((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0))" (( "(") (binary_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&\n             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" (parenthesized_expression "((*(byte *)(iVar10 + 0x25) & 0x40) == 0)" (( "(") (binary_expression "(*(byte *)(iVar10 + 0x25) & 0x40) == 0" (parenthesized_expression "(*(byte *)(iVar10 + 0x25) & 0x40)" (( "(") (binary_expression "*(byte *)(iVar10 + 0x25) & 0x40" (pointer_expression "*(byte *)(iVar10 + 0x25)" (* "*") (cast_expression "(byte *)(iVar10 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x25)" (( "(") (binary_expression "iVar10 + 0x25" (identifier "iVar10") (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)" (( "(") (binary_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0" (pointer_expression "*(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" (* "*") (cast_expression "(int *)(*(int *)(iVar10 + 0x10) + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar10 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(iVar10 + 0x10) + 0x8c" (pointer_expression "*(int *)(iVar10 + 0x10)" (* "*") (cast_expression "(int *)(iVar10 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x10)" (( "(") (binary_expression "iVar10 + 0x10" (identifier "iVar10") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x8c")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar10 = *piVar24;\n            break;\n          }" ({ "{") (expression_statement "iVar10 = *piVar24;" (assignment_expression "iVar10 = *piVar24" (identifier "iVar10") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar24 = (int *)(iVar10 + 0x18);" (assignment_expression "piVar24 = (int *)(iVar10 + 0x18)" (identifier "piVar24") (= "=") (cast_expression "(int *)(iVar10 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x18)" (( "(") (binary_expression "iVar10 + 0x18" (identifier "iVar10") (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_0002a051:\n        local_6c = (int *)(iVar7 + 0x18);" (statement_identifier "LAB_0002a051") (: ":") (expression_statement "local_6c = (int *)(iVar7 + 0x18);" (assignment_expression "local_6c = (int *)(iVar7 + 0x18)" (identifier "local_6c") (= "=") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (; ";"))) (if_statement "if (iVar11 == 0) {\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }\n        else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *piVar24 = iVar7;\n          iVar11 = *(int *)(iVar7 + 0x18);\n          *(int *)(iVar7 + 0x18) = iVar10;\n          iVar7 = iVar11;\n        }" ({ "{") (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar11 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x18)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar7 + 0x18) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x18) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iVar7 = iVar11;" (assignment_expression "iVar7 = iVar11" (identifier "iVar7") (= "=") (identifier "iVar11")) (; ";")) (} "}")) (else_clause "else {\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" (else "else") (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x18);\n          if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }\n          *piVar24 = iVar7;\n          iVar7 = *local_6c;\n          *local_6c = iVar10;\n          if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }\n        }" ({ "{") (expression_statement "iVar25 = *(int *)(iVar7 + 0x18);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x18)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar7 + 0x18)" (* "*") (cast_expression "(int *)(iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (iVar25 != 0) {\n            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\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) + 0x8c);\n            while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }\n          }" ({ "{") (expression_statement "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (* "*") (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 "0x8c")) () ")"))))) (; ";")) (while_statement "while (iVar11 == iVar28) {\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" (while "while") (parenthesized_expression "(iVar11 == iVar28)" (( "(") (binary_expression "iVar11 == iVar28" (identifier "iVar11") (== "==") (identifier "iVar28")) () ")")) (compound_statement "{\n              local_6c = (int *)(iVar25 + 0x18);\n              iVar25 = *(int *)(iVar25 + 0x18);\n              if (iVar25 == 0) break;\n              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);\n            }" ({ "{") (expression_statement "local_6c = (int *)(iVar25 + 0x18);" (assignment_expression "local_6c = (int *)(iVar25 + 0x18)" (identifier "local_6c") (= "=") (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) + 0x8c);" (assignment_expression "iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (* "*") (cast_expression "(int *)(*(int *)(iVar25 + 0x10) + 0x8c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar25 + 0x10) + 0x8c)" (( "(") (binary_expression "*(int *)(iVar25 + 0x10) + 0x8c" (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 "0x8c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar7 = *local_6c;" (assignment_expression "iVar7 = *local_6c" (identifier "iVar7") (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (expression_statement "*local_6c = iVar10;" (assignment_expression "*local_6c = iVar10" (pointer_expression "*local_6c" (* "*") (identifier "local_6c")) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (*(int *)(iVar11 + 0xa4) != 0) {\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar11 + 0xa4) != 0)" (( "(") (binary_expression "*(int *)(iVar11 + 0xa4) != 0" (pointer_expression "*(int *)(iVar11 + 0xa4)" (* "*") (cast_expression "(int *)(iVar11 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xa4)" (( "(") (binary_expression "iVar11 + 0xa4" (identifier "iVar11") (+ "+") (number_literal "0xa4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;\n          }" ({ "{") (expression_statement "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;" (assignment_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6" (pointer_expression "*(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" (* "*") (cast_expression "(int **)(*(int *)(iVar11 + 0xa4) + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xa4) + 0x18)" (( "(") (binary_expression "*(int *)(iVar11 + 0xa4) + 0x18" (pointer_expression "*(int *)(iVar11 + 0xa4)" (* "*") (cast_expression "(int *)(iVar11 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xa4)" (( "(") (binary_expression "iVar11 + 0xa4" (identifier "iVar11") (+ "+") (number_literal "0xa4")) () ")")))) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "local_6c + -6" (identifier "local_6c") (+ "+") (number_literal "-6"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if (DAT_00093cc8 != (undefined4 *)0x0) {\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" (if "if") (parenthesized_expression "(DAT_00093cc8 != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00093cc8 != (undefined4 *)0x0" (identifier "DAT_00093cc8") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_00032bf0("../../ld/ldlang.c",0x1c67);\n  }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0x1c67);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0x1c67)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0x1c67)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0x1c67") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_00093cc8 = &DAT_000937f4;" (assignment_expression "DAT_00093cc8 = &DAT_000937f4" (identifier "DAT_00093cc8") (= "=") (pointer_expression "&DAT_000937f4" (& "&") (identifier "DAT_000937f4"))) (; ";")) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" (( "(") (binary_expression "DAT_000937f8 == (undefined *)0x0" (identifier "DAT_000937f8") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_00093cc8 = DAT_000937f4;\n    if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }\n  }" ({ "{") (expression_statement "DAT_00093cc8 = DAT_000937f4;" (assignment_expression "DAT_00093cc8 = DAT_000937f4" (identifier "DAT_00093cc8") (= "=") (identifier "DAT_000937f4")) (; ";")) (if_statement "if (PTR_s_start_00093340 != (undefined *)0x0) {\n      FUN_00021990();\n    }" (if "if") (parenthesized_expression "(PTR_s_start_00093340 != (undefined *)0x0)" (( "(") (binary_expression "PTR_s_start_00093340 != (undefined *)0x0" (identifier "PTR_s_start_00093340") (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00021990();\n    }" ({ "{") (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" (identifier "FUN_00021990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if (DAT_00093cd0 != 0) {\n    FUN_00021990();\n  }" (if "if") (parenthesized_expression "(DAT_00093cd0 != 0)" (( "(") (binary_expression "DAT_00093cd0 != 0" (identifier "DAT_00093cd0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00021990();\n  }" ({ "{") (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" (identifier "FUN_00021990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00093cd4 != 0) {\n    FUN_00021990();\n  }" (if "if") (parenthesized_expression "(DAT_00093cd4 != 0)" (( "(") (binary_expression "DAT_00093cd4 != 0" (identifier "DAT_00093cd4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00021990();\n  }" ({ "{") (expression_statement "FUN_00021990();" (call_expression "FUN_00021990()" (identifier "FUN_00021990") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000313f0();" (call_expression "FUN_000313f0()" (identifier "FUN_000313f0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0))" (( "(") (binary_expression "(DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)" (parenthesized_expression "(DAT_00093dd0 != 0)" (( "(") (binary_expression "DAT_00093dd0 != 0" (identifier "DAT_00093dd0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00093870 != (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00093870 != (undefined4 *)0x0" (identifier "DAT_00093870") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);\n    FUN_00032c30(uVar8);\n    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }\n  }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);" (assignment_expression "uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5)" (identifier "uVar8") (= "=") (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_00032c30(uVar8);" (call_expression "FUN_00032c30(uVar8)" (identifier "FUN_00032c30") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (for_statement "for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" (for "for") (( "(") (assignment_expression "puVar15 = DAT_00093870" (identifier "puVar15") (= "=") (identifier "DAT_00093870")) (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)*puVar15" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) () ")") (compound_statement "{\n      FUN_00032c30(&DAT_0004de8a,puVar15[1]);\n      sVar9 = strlen((char *)puVar15[1]);\n      if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }\n      do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);\n      if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }\n      FUN_00032c30("(%pT)\n",puVar15[3]);\n    }" ({ "{") (expression_statement "FUN_00032c30(&DAT_0004de8a,puVar15[1]);" (call_expression "FUN_00032c30(&DAT_0004de8a,puVar15[1])" (identifier "FUN_00032c30") (argument_list "(&DAT_0004de8a,puVar15[1])" (( "(") (pointer_expression "&DAT_0004de8a" (& "&") (identifier "DAT_0004de8a")) (, ",") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "sVar9 = strlen((char *)puVar15[1]);" (assignment_expression "sVar9 = strlen((char *)puVar15[1])" (identifier "sVar9") (= "=") (call_expression "strlen((char *)puVar15[1])" (identifier "strlen") (argument_list "((char *)puVar15[1])" (( "(") (cast_expression "(char *)puVar15[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";")) (if_statement "if (0x1c < sVar9) {\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" (if "if") (parenthesized_expression "(0x1c < sVar9)" (( "(") (binary_expression "0x1c < sVar9" (number_literal "0x1c") (< "<") (identifier "sVar9")) () ")")) (compound_statement "{\n        FUN_00031ce0();\n        sVar9 = 0;\n      }" ({ "{") (expression_statement "FUN_00031ce0();" (call_expression "FUN_00031ce0()" (identifier "FUN_00031ce0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar9 = 0;" (assignment_expression "sVar9 = 0" (identifier "sVar9") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      } while (sVar9 != 0x1e);" (do "do") (compound_statement "{\n        FUN_00031cb0();\n        sVar9 = sVar9 + 1;\n      }" ({ "{") (expression_statement "FUN_00031cb0();" (call_expression "FUN_00031cb0()" (identifier "FUN_00031cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sVar9 = sVar9 + 1;" (assignment_expression "sVar9 = sVar9 + 1" (identifier "sVar9") (= "=") (binary_expression "sVar9 + 1" (identifier "sVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(sVar9 != 0x1e)" (( "(") (binary_expression "sVar9 != 0x1e" (identifier "sVar9") (!= "!=") (number_literal "0x1e")) () ")")) (; ";")) (if_statement "if (puVar15[2] != 0) {\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" (if "if") (parenthesized_expression "(puVar15[2] != 0)" (( "(") (binary_expression "puVar15[2] != 0" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00032c30(&DAT_0004e11a,puVar15[2]);\n      }" ({ "{") (expression_statement "FUN_00032c30(&DAT_0004e11a,puVar15[2]);" (call_expression "FUN_00032c30(&DAT_0004e11a,puVar15[2])" (identifier "FUN_00032c30") (argument_list "(&DAT_0004e11a,puVar15[2])" (( "(") (pointer_expression "&DAT_0004e11a" (& "&") (identifier "DAT_0004e11a")) (, ",") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00032c30("(%pT)\n",puVar15[3]);" (call_expression "FUN_00032c30("(%pT)\n",puVar15[3])" (identifier "FUN_00032c30") (argument_list "("(%pT)\n",puVar15[3])" (( "(") (string_literal ""(%pT)\n"" (" """) (string_content "(%pT)") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (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 "()" (( "(") () ")"))) (; ";")) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";") (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 "{\nLAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }\n    iVar7 = piVar24[4];\n    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);\n    iVar11 = DAT_00093cb4;\n    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }\n    if (iVar10 != 0) goto LAB_00028a63;\nLAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;\n    uVar8 = bfd_printable_name(DAT_00093cb4);\n    uVar14 = bfd_printable_name(iVar7);\n    uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);\n    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);\n  }" ({ "{") (labeled_statement "LAB_00028a10:\n    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" (statement_identifier "LAB_00028a10") (: ":") (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\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 "{\nLAB_00028ac0:\n      piVar24 = (int *)piVar24[6];\njoined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;\n      goto LAB_00028a10;\n    }" ({ "{") (labeled_statement "LAB_00028ac0:\n      piVar24 = (int *)piVar24[6];" (statement_identifier "LAB_00028ac0") (: ":") (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") (] "]")))) (; ";"))) (labeled_statement "joined_r0x00029918:\n      if (piVar24 == (int *)0x0) break;" (statement_identifier "joined_r0x00029918") (: ":") (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") (; ";")))) (goto_statement "goto LAB_00028a10;" (goto "goto") (statement_identifier "LAB_00028a10") (; ";")) (} "}")))) (expression_statement "iVar7 = piVar24[4];" (assignment_expression "iVar7 = piVar24[4]" (identifier "iVar7") (= "=") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);" (assignment_expression "iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" (identifier "iVar10") (= "=") (call_expression "bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c)" (identifier "bfd_arch_get_compatible") (argument_list "(iVar7,DAT_00093cb4,DAT_00093d3c)" (( "(") (identifier "iVar7") (, ",") (identifier "DAT_00093cb4") (, ",") (identifier "DAT_00093d3c") () ")")))) (; ";")) (expression_statement "iVar11 = DAT_00093cb4;" (assignment_expression "iVar11 = DAT_00093cb4" (identifier "iVar11") (= "=") (identifier "DAT_00093cb4")) (; ";")) (if_statement "if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" (if "if") (parenthesized_expression "(((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0))" (( "(") (binary_expression "((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)" (parenthesized_expression "((DAT_00093c80 & 3) == 2)" (( "(") (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "((DAT_00093c82._1_1_ & 8) != 0)" (( "(") (binary_expression "(DAT_00093c82._1_1_ & 8) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 8)" (( "(") (binary_expression "DAT_00093c82._1_1_ & 8" (field_expression "DAT_00093c82._1_1_" (identifier "DAT_00093c82") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }\n      uVar8 = *puVar22;\n      uVar14 = *puVar15;\n      uVar20 = 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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);\n      if (iVar10 == 0) goto LAB_00028d68;\nLAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;\n      uVar8 = 0;\n      if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }\n      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }\nLAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;\n      piVar24 = (int *)piVar24[6];\n      goto joined_r0x00029918;\n    }" ({ "{") (if_statement "if (iVar10 == 0) {\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }\n      else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n      }" ({ "{") (if_statement "if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;" (if "if") (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" (* "*") (cast_expression "(byte *)(iVar7 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028d68;" (goto "goto") (statement_identifier "LAB_00028d68") (; ";"))) (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" (else "else") (compound_statement "{\n        puVar15 = *(undefined4 **)(iVar7 + 4);\n        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);\n        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;\n      }" ({ "{") (expression_statement "puVar15 = *(undefined4 **)(iVar7 + 4);" (assignment_expression "puVar15 = *(undefined4 **)(iVar7 + 4)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 **)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);" (assignment_expression "puVar22 = *(undefined4 **)(DAT_00093cb4 + 4)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(undefined4 **)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))\n        goto LAB_00028a63;" (if "if") (parenthesized_expression "((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))" (( "(") (binary_expression "(puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" (parenthesized_expression "(puVar15[1] == puVar22[1])" (( "(") (binary_expression "puVar15[1] == puVar22[1]" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (== "==") (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]"))) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar7 + 0x28) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(iVar7 + 0x28) & 0x20) == 0" (parenthesized_expression "(*(byte *)(iVar7 + 0x28) & 0x20)" (( "(") (binary_expression "*(byte *)(iVar7 + 0x28) & 0x20" (pointer_expression "*(byte *)(iVar7 + 0x28)" (* "*") (cast_expression "(byte *)(iVar7 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x28)" (( "(") (binary_expression "iVar7 + 0x28" (identifier "iVar7") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00028a63;" (goto "goto") (statement_identifier "LAB_00028a63") (; ";"))) (} "}")))) (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" (identifier "uVar8") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" (identifier "uVar14") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar20 = 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 "uVar20 = dcgettext(0,\n                         "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"\n                         ,5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11)" (identifier "FUN_00032ba0") (argument_list "(uVar20,uVar14,iVar7,uVar8,iVar11)" (( "(") (identifier "uVar20") (, ",") (identifier "uVar14") (, ",") (identifier "iVar7") (, ",") (identifier "uVar8") (, ",") (identifier "iVar11") () ")"))) (; ";")) (if_statement "if (iVar10 == 0) goto LAB_00028d68;" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028d68;" (goto "goto") (statement_identifier "LAB_00028d68") (; ";"))) (labeled_statement "LAB_00028a63:\n      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" (statement_identifier "LAB_00028a63") (: ":") (if_statement "if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;" (if "if") (parenthesized_expression "(*(int *)(iVar7 + 0x68) == 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x68) == 0" (pointer_expression "*(int *)(iVar7 + 0x68)" (* "*") (cast_expression "(int *)(iVar7 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x68)" (( "(") (binary_expression "iVar7 + 0x68" (identifier "iVar7") (+ "+") (number_literal "0x68")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028ac0;" (goto "goto") (statement_identifier "LAB_00028ac0") (; ";")))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (DAT_00093d30 == 0) {\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" (if "if") (parenthesized_expression "(DAT_00093d30 == 0)" (( "(") (binary_expression "DAT_00093d30 == 0" (identifier "DAT_00093d30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = bfd_set_error_handler(FUN_0001df90);\n      }" ({ "{") (expression_statement "uVar8 = bfd_set_error_handler(FUN_0001df90);" (assignment_expression "uVar8 = bfd_set_error_handler(FUN_0001df90)" (identifier "uVar8") (= "=") (call_expression "bfd_set_error_handler(FUN_0001df90)" (identifier "bfd_set_error_handler") (argument_list "(FUN_0001df90)" (( "(") (identifier "FUN_0001df90") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0xac)" (( "(") (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0xac" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xac")) () ")"))))) () ")")) (argument_list "(iVar7,&DAT_00093c80)" (( "(") (identifier "iVar7") (, ",") (pointer_expression "&DAT_00093c80" (& "&") (identifier "DAT_00093c80")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }\nLAB_00028aaa:\n        bfd_set_error_handler(uVar8);\n        goto LAB_00028ac0;\n      }" ({ "{") (if_statement "if (DAT_00093d30 != 0) {\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" (if "if") (parenthesized_expression "(DAT_00093d30 != 0)" (( "(") (binary_expression "DAT_00093d30 != 0" (identifier "DAT_00093d30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);\n          FUN_00032ba0(uVar14,iVar7);\n          goto LAB_00029904;\n        }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" (identifier "FUN_00032ba0") (argument_list "(uVar14,iVar7)" (( "(") (identifier "uVar14") (, ",") (identifier "iVar7") () ")"))) (; ";")) (goto_statement "goto LAB_00029904;" (goto "goto") (statement_identifier "LAB_00029904") (; ";")) (} "}"))) (labeled_statement "LAB_00028aaa:\n        bfd_set_error_handler(uVar8);" (statement_identifier "LAB_00028aaa") (: ":") (expression_statement "bfd_set_error_handler(uVar8);" (call_expression "bfd_set_error_handler(uVar8)" (identifier "bfd_set_error_handler") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";"))) (goto_statement "goto LAB_00028ac0;" (goto "goto") (statement_identifier "LAB_00028ac0") (; ";")) (} "}"))) (labeled_statement "LAB_00029904:\n      if (DAT_00093d30 == 0) goto LAB_00028aaa;" (statement_identifier "LAB_00029904") (: ":") (if_statement "if (DAT_00093d30 == 0) goto LAB_00028aaa;" (if "if") (parenthesized_expression "(DAT_00093d30 == 0)" (( "(") (binary_expression "DAT_00093d30 == 0" (identifier "DAT_00093d30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028aaa;" (goto "goto") (statement_identifier "LAB_00028aaa") (; ";")))) (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_r0x00029918;" (goto "goto") (statement_identifier "joined_r0x00029918") (; ";")) (} "}"))) (if_statement "if (iVar10 != 0) goto LAB_00028a63;" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028a63;" (goto "goto") (statement_identifier "LAB_00028a63") (; ";"))) (labeled_statement "LAB_00028d68:\n    if (DAT_00093d30 == 0) goto LAB_00028ac0;" (statement_identifier "LAB_00028d68") (: ":") (if_statement "if (DAT_00093d30 == 0) goto LAB_00028ac0;" (if "if") (parenthesized_expression "(DAT_00093d30 == 0)" (( "(") (binary_expression "DAT_00093d30 == 0" (identifier "DAT_00093d30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028ac0;" (goto "goto") (statement_identifier "LAB_00028ac0") (; ";")))) (expression_statement "uVar8 = bfd_printable_name(DAT_00093cb4);" (assignment_expression "uVar8 = bfd_printable_name(DAT_00093cb4)" (identifier "uVar8") (= "=") (call_expression "bfd_printable_name(DAT_00093cb4)" (identifier "bfd_printable_name") (argument_list "(DAT_00093cb4)" (( "(") (identifier "DAT_00093cb4") () ")")))) (; ";")) (expression_statement "uVar14 = bfd_printable_name(iVar7);" (assignment_expression "uVar14 = bfd_printable_name(iVar7)" (identifier "uVar14") (= "=") (call_expression "bfd_printable_name(iVar7)" (identifier "bfd_printable_name") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5);" (assignment_expression "uVar20 = dcgettext(0,\n                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"\n                       ,5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,uVar14,iVar7,uVar8);" (call_expression "FUN_00032ba0(uVar20,uVar14,iVar7,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar20,uVar14,iVar7,uVar8)" (( "(") (identifier "uVar20") (, ",") (identifier "uVar14") (, ",") (identifier "iVar7") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00093d74 != 0) {\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" (if "if") (parenthesized_expression "(DAT_00093d74 != 0)" (( "(") (binary_expression "DAT_00093d74 != 0" (identifier "DAT_00093d74") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar8 = 0;\n    piVar24 = DAT_000937fc;\n    while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }\nLAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);\n    iVar7 = xcalloc(1,0x3c);\n    *(undefined4 *)(iVar7 + 0xc) = uVar8;\n    *(undefined4 *)(iVar7 + 0x1c) = uVar14;\n    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;\n    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;\n    FUN_000283d0(DAT_00093d74,iVar7,0);\n  }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";")) (while_statement "while (piVar24 != (int *)0x0) {\n      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" (while "while") (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      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }\n      iVar11 = *(int *)(iVar7 + 0x2c);\n      uVar14 = *(undefined4 *)(iVar7 + 0x30);\n      pcVar12 = (char *)xmalloc(iVar11);\n      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);\n      if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }\n      pcVar13 = pcVar12 + iVar11;\n      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }\n      piVar24 = (int *)piVar24[6];\n      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;\n    }" ({ "{") (while_statement "while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" (while "while") (parenthesized_expression "(iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0)" (( "(") (comma_expression "iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0" (assignment_expression "iVar7 = bfd_get_section_by_name(piVar24[4],".exports")" (identifier "iVar7") (= "=") (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 "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        piVar24 = (int *)piVar24[6];\n        if (piVar24 == (int *)0x0) goto LAB_00028bc4;\n      }" ({ "{") (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) goto LAB_00028bc4;" (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_00028bc4;" (goto "goto") (statement_identifier "LAB_00028bc4") (; ";"))) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar7 + 0x2c);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x2c)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(iVar7 + 0x30);" (assignment_expression "uVar14 = *(undefined4 *)(iVar7 + 0x30)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "pcVar12 = (char *)xmalloc(iVar11);" (assignment_expression "pcVar12 = (char *)xmalloc(iVar11)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xmalloc(iVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar11)" (identifier "xmalloc") (argument_list "(iVar11)" (( "(") (identifier "iVar11") () ")"))))) (; ";")) (expression_statement "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);" (assignment_expression "iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" (identifier "iVar10") (= "=") (call_expression "bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" (identifier "bfd_get_section_contents") (argument_list "(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14)" (( "(") (subscript_expression "piVar24[4]" (identifier "piVar24") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "iVar7") (, ",") (identifier "pcVar12") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar11") (, ",") (identifier "uVar14") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);\n        FUN_00032ba0(uVar14,iVar7);\n      }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,iVar7);" (call_expression "FUN_00032ba0(uVar14,iVar7)" (identifier "FUN_00032ba0") (argument_list "(uVar14,iVar7)" (( "(") (identifier "uVar14") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar13 = pcVar12 + iVar11;" (assignment_expression "pcVar13 = pcVar12 + iVar11" (identifier "pcVar13") (= "=") (binary_expression "pcVar12 + iVar11" (identifier "pcVar12") (+ "+") (identifier "iVar11"))) (; ";")) (for_statement "for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" (for "for") (( "(") (; ";") (binary_expression "pcVar12 < pcVar13" (identifier "pcVar12") (< "<") (identifier "pcVar13")) (; ";") (assignment_expression "pcVar12 = pcVar12 + sVar9 + 1" (identifier "pcVar12") (= "=") (binary_expression "pcVar12 + sVar9 + 1" (binary_expression "pcVar12 + sVar9" (identifier "pcVar12") (+ "+") (identifier "sVar9")) (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);\n        sVar9 = strlen(pcVar12);\n      }" ({ "{") (expression_statement "uVar8 = FUN_00028150(uVar8,pcVar12,0,0);" (assignment_expression "uVar8 = FUN_00028150(uVar8,pcVar12,0,0)" (identifier "uVar8") (= "=") (call_expression "FUN_00028150(uVar8,pcVar12,0,0)" (identifier "FUN_00028150") (argument_list "(uVar8,pcVar12,0,0)" (( "(") (identifier "uVar8") (, ",") (identifier "pcVar12") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar12)" (identifier "strlen") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (} "}"))) (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 *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar7 + 0x14) | 0x208000" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "0x208000"))) (; ";")) (} "}"))) (labeled_statement "LAB_00028bc4:\n    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" (statement_identifier "LAB_00028bc4") (: ":") (expression_statement "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);" (assignment_expression "uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0)" (identifier "uVar14") (= "=") (call_expression "FUN_00028150(0,&DAT_0004dff8,0,0)" (identifier "FUN_00028150") (argument_list "(0,&DAT_0004dff8,0,0)" (( "(") (number_literal "0") (, ",") (pointer_expression "&DAT_0004dff8" (& "&") (identifier "DAT_0004dff8")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "iVar7 = xcalloc(1,0x3c);" (assignment_expression "iVar7 = xcalloc(1,0x3c)" (identifier "iVar7") (= "=") (call_expression "xcalloc(1,0x3c)" (identifier "xcalloc") (argument_list "(1,0x3c)" (( "(") (number_literal "1") (, ",") (number_literal "0x3c") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = uVar14;" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = uVar14" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "*(code **)(iVar7 + 0x38) = FUN_0001ecc0;" (assignment_expression "*(code **)(iVar7 + 0x38) = FUN_0001ecc0" (pointer_expression "*(code **)(iVar7 + 0x38)" (* "*") (cast_expression "(code **)(iVar7 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x38)" (( "(") (binary_expression "iVar7 + 0x38" (identifier "iVar7") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "FUN_0001ecc0")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = 0xffffffff" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "FUN_000283d0(DAT_00093d74,iVar7,0);" (call_expression "FUN_000283d0(DAT_00093d74,iVar7,0)" (identifier "FUN_000283d0") (argument_list "(DAT_00093d74,iVar7,0)" (( "(") (identifier "DAT_00093d74") (, ",") (identifier "iVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0002ba20();" (call_expression "FUN_0002ba20()" (identifier "FUN_0002ba20") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar17 = PTR__sch_istable_00092f98;" (assignment_expression "puVar17 = PTR__sch_istable_00092f98" (identifier "puVar17") (= "=") (identifier "PTR__sch_istable_00092f98")) (; ";")) (if_statement "if (DAT_00093d8c != 0) {\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00093d8c != 0)" (( "(") (binary_expression "DAT_00093d8c != 0" (identifier "DAT_00093d8c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_54 = DAT_00093cbc;\n    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);\n    if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }\n  }" ({ "{") (expression_statement "local_54 = DAT_00093cbc;" (assignment_expression "local_54 = DAT_00093cbc" (identifier "local_54") (= "=") (identifier "DAT_00093cbc")) (; ";")) (expression_statement "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" (* "*") (cast_expression "(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18)" (( "(") (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (DAT_00093cbc != 0) {\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" (if "if") (parenthesized_expression "(DAT_00093cbc != 0)" (( "(") (binary_expression "DAT_00093cbc != 0" (identifier "DAT_00093cbc") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);\n    }" ({ "{") (do_statement "do {\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      } while (local_54 != 0);" (do "do") (compound_statement "{\n        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }\nLAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);\n      }" ({ "{") (for_statement "for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;\n            puVar15 = (undefined4 *)puVar15[3]) {\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" (for "for") (( "(") (assignment_expression "puVar15 = *(undefined4 **)(local_54 + 0x60)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(local_54 + 0x60)" (* "*") (cast_expression "(undefined4 **)(local_54 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_54 + 0x60)" (( "(") (binary_expression "local_54 + 0x60" (identifier "local_54") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n          while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }\nLAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);\n          pcVar12 = (char *)xmalloc(sVar9 + 10);\n          *pcVar12 = cVar1;\n          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);\n          FUN_0001ec30();\n          pcVar12[1] = cVar1;\n          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);\n          FUN_0001ec30();\n          free(pcVar12);\n        }" ({ "{") (while_statement "while( true ) {\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            bVar21 = *pbVar3;\n            if (bVar21 == 0) break;\n            bVar2 = puVar17[(uint)bVar21 * 2];\n            pbVar19 = pbVar3;\n            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }\n            puVar15 = (undefined4 *)puVar15[3];\n            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;\n          }" ({ "{") (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*puVar15" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (expression_statement "bVar21 = *pbVar3;" (assignment_expression "bVar21 = *pbVar3" (identifier "bVar21") (= "=") (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3"))) (; ";")) (if_statement "if (bVar21 == 0) break;" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" (identifier "bVar2") (= "=") (subscript_expression "puVar17[(uint)bVar21 * 2]" (identifier "puVar17") ([ "[") (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" (identifier "pbVar19") (= "=") (identifier "pbVar3")) (; ";")) (while_statement "while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" (while "while") (parenthesized_expression "(((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)))" (( "(") (parenthesized_expression "((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))" (( "(") (binary_expression "(bVar2 & 0x8c) != 0 || (bVar21 == 0x5f)" (binary_expression "(bVar2 & 0x8c) != 0" (parenthesized_expression "(bVar2 & 0x8c)" (( "(") (binary_expression "bVar2 & 0x8c" (identifier "bVar2") (& "&") (number_literal "0x8c")) () ")")) (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(bVar21 == 0x5f)" (( "(") (binary_expression "bVar21 == 0x5f" (identifier "bVar21") (== "==") (number_literal "0x5f")) () ")"))) () ")")) () ")")) (compound_statement "{\n              pbVar19 = pbVar19 + 1;\n              bVar21 = *pbVar19;\n              if (bVar21 == 0) goto LAB_0002a660;\n              bVar2 = puVar17[(uint)bVar21 * 2];\n            }" ({ "{") (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar21 = *pbVar19;" (assignment_expression "bVar21 = *pbVar19" (identifier "bVar21") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (if_statement "if (bVar21 == 0) goto LAB_0002a660;" (if "if") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002a660;" (goto "goto") (statement_identifier "LAB_0002a660") (; ";"))) (expression_statement "bVar2 = puVar17[(uint)bVar21 * 2];" (assignment_expression "bVar2 = puVar17[(uint)bVar21 * 2]" (identifier "bVar2") (= "=") (subscript_expression "puVar17[(uint)bVar21 * 2]" (identifier "puVar17") ([ "[") (binary_expression "(uint)bVar21 * 2" (cast_expression "(uint)bVar21" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar21")) (* "*") (number_literal "2")) (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002a640;" (goto "goto") (statement_identifier "LAB_0002a640") (; ";"))) (} "}"))) (labeled_statement "LAB_0002a660:\n          sVar9 = strlen((char *)pbVar3);" (statement_identifier "LAB_0002a660") (: ":") (expression_statement "sVar9 = strlen((char *)pbVar3);" (assignment_expression "sVar9 = strlen((char *)pbVar3)" (identifier "sVar9") (= "=") (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 "pcVar12 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar12 = (char *)xmalloc(sVar9 + 10)" (identifier "pcVar12") (= "=") (cast_expression "(char *)xmalloc(sVar9 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 10)" (identifier "xmalloc") (argument_list "(sVar9 + 10)" (( "(") (binary_expression "sVar9 + 10" (identifier "sVar9") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "*pcVar12 = cVar1;" (assignment_expression "*pcVar12 = cVar1" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (= "=") (identifier "cVar1")) (; ";")) (expression_statement "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);" (call_expression "sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" (identifier "sprintf") (argument_list "(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3)" (( "(") (binary_expression "pcVar12 + (cVar1 != '\0')" (identifier "pcVar12") (+ "+") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) (, ",") (string_literal ""__start_%s"" (" """) (string_content "__start_%s") (" """)) (, ",") (identifier "pbVar3") () ")"))) (; ";")) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" (identifier "FUN_0001ec30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar12[1] = cVar1;" (assignment_expression "pcVar12[1] = cVar1" (subscript_expression "pcVar12[1]" (identifier "pcVar12") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "cVar1")) (; ";")) (expression_statement "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);" (call_expression "builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" (identifier "builtin_strncpy") (argument_list "(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6)" (( "(") (binary_expression "pcVar12 + (2 - (uint)(cVar1 == '\0'))" (identifier "pcVar12") (+ "+") (parenthesized_expression "(2 - (uint)(cVar1 == '\0'))" (( "(") (binary_expression "2 - (uint)(cVar1 == '\0')" (number_literal "2") (- "-") (call_expression "(uint)(cVar1 == '\0')" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")))) () ")"))) (, ",") (string_literal ""__stop"" (" """) (string_content "__stop") (" """)) (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" (identifier "FUN_0001ec30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(pcVar12);" (call_expression "free(pcVar12)" (identifier "free") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002a640:\n        local_54 = *(int *)(local_54 + 0x9c);" (statement_identifier "LAB_0002a640") (: ":") (expression_statement "local_54 = *(int *)(local_54 + 0x9c);" (assignment_expression "local_54 = *(int *)(local_54 + 0x9c)" (identifier "local_54") (= "=") (pointer_expression "*(int *)(local_54 + 0x9c)" (* "*") (cast_expression "(int *)(local_54 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_54 + 0x9c)" (( "(") (binary_expression "local_54 + 0x9c" (identifier "local_54") (+ "+") (number_literal "0x9c")) () ")"))))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(local_54 != 0)" (( "(") (binary_expression "local_54 != 0" (identifier "local_54") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00025190(1);" (call_expression "FUN_00025190(1)" (identifier "FUN_00025190") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (expression_statement "puVar15 = DAT_0009384c;" (assignment_expression "puVar15 = DAT_0009384c" (identifier "puVar15") (= "=") (identifier "DAT_0009384c")) (; ";")) (labeled_statement "joined_r0x00028c51:\n  if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" (statement_identifier "joined_r0x00028c51") (: ":") (if_statement "if (puVar15 != (undefined4 *)0x0) {\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    } while( true );" (do "do") (compound_statement "{\n      if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }\n      if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }\n      puVar15 = (undefined4 *)puVar15[2];\n      if (puVar15 == (undefined4 *)0x0) break;\n    }" ({ "{") (if_statement "if (puVar15[3] != 0) {\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" (if "if") (parenthesized_expression "(puVar15[3] != 0)" (( "(") (binary_expression "puVar15[3] != 0" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00030910(puVar15[3]);\n        uVar14 = DAT_00093e38;\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }\n      }" ({ "{") (expression_statement "FUN_00030910(puVar15[3]);" (call_expression "FUN_00030910(puVar15[3])" (identifier "FUN_00030910") (argument_list "(puVar15[3])" (( "(") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "uVar14 = DAT_00093e38;" (assignment_expression "uVar14 = DAT_00093e38" (identifier "uVar14") (= "=") (identifier "DAT_00093e38")) (; ";")) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" (identifier "uVar8") (= "=") (identifier "DAT_00093e34")) (; ";")) (if_statement "if (DAT_00093e44 == 0) {\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\n        else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" (if "if") (parenthesized_expression "(DAT_00093e44 == 0)" (( "(") (binary_expression "DAT_00093e44 == 0" (identifier "DAT_00093e44") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar8 = *puVar15;\n          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" ({ "{") (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" (else "else") (compound_statement "{\n          puVar15[10] = DAT_00093e38;\n          puVar15[4] = uVar8;\n          puVar15[5] = uVar14;\n          puVar15[9] = uVar8;\n        }" ({ "{") (expression_statement "puVar15[10] = DAT_00093e38;" (assignment_expression "puVar15[10] = DAT_00093e38" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "DAT_00093e38")) (; ";")) (expression_statement "puVar15[4] = uVar8;" (assignment_expression "puVar15[4] = uVar8" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "puVar15[5] = uVar14;" (assignment_expression "puVar15[5] = uVar14" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "puVar15[9] = uVar8;" (assignment_expression "puVar15[9] = uVar8" (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (puVar15[8] != 0) {\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" (if "if") (parenthesized_expression "(puVar15[8] != 0)" (( "(") (binary_expression "puVar15[8] != 0" (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00030910(puVar15[8]);\n        uVar8 = DAT_00093e34;\n        if (DAT_00093e44 == 0) goto LAB_00028dd0;\n        puVar15[7] = DAT_00093e38;\n        puVar15[6] = uVar8;\n      }" ({ "{") (expression_statement "FUN_00030910(puVar15[8]);" (call_expression "FUN_00030910(puVar15[8])" (identifier "FUN_00030910") (argument_list "(puVar15[8])" (( "(") (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) () ")"))) (; ";")) (expression_statement "uVar8 = DAT_00093e34;" (assignment_expression "uVar8 = DAT_00093e34" (identifier "uVar8") (= "=") (identifier "DAT_00093e34")) (; ";")) (if_statement "if (DAT_00093e44 == 0) goto LAB_00028dd0;" (if "if") (parenthesized_expression "(DAT_00093e44 == 0)" (( "(") (binary_expression "DAT_00093e44 == 0" (identifier "DAT_00093e44") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00028dd0;" (goto "goto") (statement_identifier "LAB_00028dd0") (; ";"))) (expression_statement "puVar15[7] = DAT_00093e38;" (assignment_expression "puVar15[7] = DAT_00093e38" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "DAT_00093e38")) (; ";")) (expression_statement "puVar15[6] = uVar8;" (assignment_expression "puVar15[6] = uVar8" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (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_00093e20 = 0;" (assignment_expression "DAT_00093e20 = 0" (identifier "DAT_00093e20") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))))" (( "(") (binary_expression "((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" (parenthesized_expression "((DAT_00093c87 & 0x20) == 0)" (( "(") (binary_expression "(DAT_00093c87 & 0x20) == 0" (parenthesized_expression "(DAT_00093c87 & 0x20)" (( "(") (binary_expression "DAT_00093c87 & 0x20" (identifier "DAT_00093c87") (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))" (( "(") (parenthesized_expression "((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0))" (( "(") (binary_expression "(DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)" (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) (|| "||") (parenthesized_expression "(DAT_00093d20 != 0)" (( "(") (binary_expression "DAT_00093d20 != 0" (identifier "DAT_00093d20") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n    if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }\n  }" ({ "{") (if_statement "if (DAT_00093dac == 0) {\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }\n    else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" (if "if") (parenthesized_expression "(DAT_00093dac == 0)" (( "(") (binary_expression "DAT_00093dac == 0" (identifier "DAT_00093dac") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);\n    }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00093ca0,FUN_00020720,0)" (( "(") (identifier "DAT_00093ca0") (, ",") (identifier "FUN_00020720") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" (else "else") (compound_statement "{\n      if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n    }" ({ "{") (if_statement "if (DAT_00093dac == 2) {\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093dac == 2)" (( "(") (binary_expression "DAT_00093dac == 2" (identifier "DAT_00093dac") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        local_20[0] = (char *)0x4;\n        do {\n          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + -1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00093ca0,FUN_00020720,local_20)" (( "(") (identifier "DAT_00093ca0") (, ",") (identifier "FUN_00020720") (, ",") (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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);\n          local_20[0] = local_20[0] + 1;\n        }" ({ "{") (expression_statement "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00093ca0,FUN_00020720,local_20)" (( "(") (identifier "DAT_00093ca0") (, ",") (identifier "FUN_00020720") (, ",") (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_00093ca0,FUN_00020720,local_20);" (call_expression "bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,local_20)" (identifier "bfd_link_hash_traverse") (argument_list "(DAT_00093ca0,FUN_00020720,local_20)" (( "(") (identifier "DAT_00093ca0") (, ",") (identifier "FUN_00020720") (, ",") (identifier "local_20") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_00025db0();" (call_expression "FUN_00025db0()" (identifier "FUN_00025db0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "bVar21 = DAT_00093c80;" (assignment_expression "bVar21 = DAT_00093c80" (identifier "bVar21") (= "=") (identifier "DAT_00093c80")) (; ";")) (expression_statement "piVar24 = DAT_000937fc;" (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";")) (if_statement "if ((DAT_00093c80 & 3) == 2) {\n    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00093c80 & 3) == 2)" (( "(") (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {\n        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 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 (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }\n      }" ({ "{") (for_statement "for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" (for "for") (( "(") (assignment_expression "iVar7 = *(int *)(piVar24[4] + 0x60)" (identifier "iVar7") (= "=") (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 "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) () ")") (compound_statement "{\n          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }\n        }" ({ "{") (if_statement "if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" (if "if") (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x2000) == 0)" (( "(") (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x2000) == 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x2000)" (( "(") (binary_expression "*(uint *)(iVar7 + 0x14) & 0x2000" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x2000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;\n          }" ({ "{") (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar7 + 0x14) & 0xffff7fff" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xffff7fff"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((bVar21 & 0x40) != 0) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" (if "if") (parenthesized_expression "((bVar21 & 0x40) != 0)" (( "(") (binary_expression "(bVar21 & 0x40) != 0" (parenthesized_expression "(bVar21 & 0x40)" (( "(") (binary_expression "bVar21 & 0x40" (identifier "bVar21") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x184)" (( "(") (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x184" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x184")) () ")"))))) () ")")) (argument_list "(DAT_00093cb4,&DAT_00093c80)" (( "(") (identifier "DAT_00093cb4") (, ",") (pointer_expression "&DAT_00093c80" (& "&") (identifier "DAT_00093c80")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = DAT_00093cbc;" (assignment_expression "iVar7 = DAT_00093cbc" (identifier "iVar7") (= "=") (identifier "DAT_00093cbc")) (; ";")) (if_statement "if ((DAT_00093c86 & 0x20) != 0) {\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((DAT_00093c86 & 0x20) != 0)" (( "(") (binary_expression "(DAT_00093c86 & 0x20) != 0" (parenthesized_expression "(DAT_00093c86 & 0x20)" (( "(") (binary_expression "DAT_00093c86 & 0x20" (identifier "DAT_00093c86") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }\n  }" ({ "{") (for_statement "for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = *(int *)(iVar7 + 0x9c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x9c)" (* "*") (cast_expression "(int *)(iVar7 + 0x9c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x9c)" (( "(") (binary_expression "iVar7 + 0x9c" (identifier "iVar7") (+ "+") (number_literal "0x9c")) () ")"))))) () ")") (compound_statement "{\n      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);\n      if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }\n    }" ({ "{") (expression_statement "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);" (assignment_expression "iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80)" (identifier "iVar11") (= "=") (call_expression "bfd_link_check_relocs(iVar7,&DAT_00093c80)" (identifier "bfd_link_check_relocs") (argument_list "(iVar7,&DAT_00093c80)" (( "(") (identifier "iVar7") (, ",") (pointer_expression "&DAT_00093c80" (& "&") (identifier "DAT_00093c80")) () ")")))) (; ";")) (if_statement "if (iVar11 == 0) {\n        DAT_00093d84 = 0;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_00093d84 = 0;\n      }" ({ "{") (expression_statement "DAT_00093d84 = 0;" (assignment_expression "DAT_00093d84 = 0" (identifier "DAT_00093d84") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_00031410();" (call_expression "FUN_00031410()" (identifier "FUN_00031410") (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_0001e100();" (call_expression "FUN_0001e100()" (identifier "FUN_0001e100") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "DAT_000937e0 = DAT_000937e0 + 1;" (assignment_expression "DAT_000937e0 = DAT_000937e0 + 1" (identifier "DAT_000937e0") (= "=") (binary_expression "DAT_000937e0 + 1" (identifier "DAT_000937e0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00025ed0();" (call_expression "FUN_00025ed0()" (identifier "FUN_00025ed0") (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_00093c40;" (assignment_expression "piVar24 = (int *)*DAT_00093c40" (identifier "piVar24") (= "=") (cast_expression "(int *)*DAT_00093c40" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_00093c40" (* "*") (identifier "DAT_00093c40")))) (; ";")) (if_statement "if (piVar24 == (int *)0x0) {\nLAB_00028f94:\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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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_00028f94:\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_00028f94:\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_00028f94") (: ":") (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    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\n  }" (else "else") (compound_statement "{\n    piVar27 = (int *)0x0;\n    piVar32 = DAT_00093c40;\n    while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }\n    if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }\n    iVar7 = FUN_00023550(piVar24[2],0,0);\n    if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }\nLAB_00029066:\n    iVar7 = piVar24[2];\n    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);\n    FUN_00032ba0(uVar8,iVar7);\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 "piVar32 = DAT_00093c40;" (assignment_expression "piVar32 = DAT_00093c40" (identifier "piVar32") (= "=") (identifier "DAT_00093c40")) (; ";")) (while_statement "while (piVar16 = piVar24, piVar24[1] == 0) {\n      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" (while "while") (parenthesized_expression "(piVar16 = piVar24, piVar24[1] == 0)" (( "(") (comma_expression "piVar16 = piVar24, piVar24[1] == 0" (assignment_expression "piVar16 = piVar24" (identifier "piVar16") (= "=") (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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }\n      piVar24[0x12] = -2 - piVar24[0x12];\n      piVar23 = piVar24;\n      piVar26 = piVar24;\n      if (piVar27 != (int *)0x0) goto LAB_00028f8a;\nLAB_00028f8c:\n      piVar24 = (int *)*piVar16;\n      piVar27 = piVar26;\n      piVar32 = piVar16;\n      if (piVar24 == (int *)0x0) goto LAB_00028f94;\n    }" ({ "{") (if_statement "if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {\n        FUN_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\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_00032bf0("../../ld/ldlang.c",0xea0);\n        piVar16 = (int *)*piVar32;\n      }" ({ "{") (expression_statement "FUN_00032bf0("../../ld/ldlang.c",0xea0);" (call_expression "FUN_00032bf0("../../ld/ldlang.c",0xea0)" (identifier "FUN_00032bf0") (argument_list "("../../ld/ldlang.c",0xea0)" (( "(") (string_literal ""../../ld/ldlang.c"" (" """) (string_content "../../ld/ldlang.c") (" """)) (, ",") (number_literal "0xea0") () ")"))) (; ";")) (expression_statement "piVar16 = (int *)*piVar32;" (assignment_expression "piVar16 = (int *)*piVar32" (identifier "piVar16") (= "=") (cast_expression "(int *)*piVar32" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar32" (* "*") (identifier "piVar32")))) (; ";")) (} "}"))) (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_00028f8a;" (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_00028f8a;" (goto "goto") (statement_identifier "LAB_00028f8a") (; ";"))) (labeled_statement "LAB_00028f8c:\n      piVar24 = (int *)*piVar16;" (statement_identifier "LAB_00028f8c") (: ":") (expression_statement "piVar24 = (int *)*piVar16;" (assignment_expression "piVar24 = (int *)*piVar16" (identifier "piVar24") (= "=") (cast_expression "(int *)*piVar16" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar16" (* "*") (identifier "piVar16")))) (; ";"))) (expression_statement "piVar27 = piVar26;" (assignment_expression "piVar27 = piVar26" (identifier "piVar27") (= "=") (identifier "piVar26")) (; ";")) (expression_statement "piVar32 = piVar16;" (assignment_expression "piVar32 = piVar16" (identifier "piVar32") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (piVar24 == (int *)0x0) goto LAB_00028f94;" (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_00028f94;" (goto "goto") (statement_identifier "LAB_00028f94") (; ";"))) (} "}"))) (if_statement "if (piVar24[1] != 0xe) {\nLAB_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\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_00028f8a:\n      piVar26 = piVar27;\n      goto LAB_00028f8c;\n    }" ({ "{") (labeled_statement "LAB_00028f8a:\n      piVar26 = piVar27;" (statement_identifier "LAB_00028f8a") (: ":") (expression_statement "piVar26 = piVar27;" (assignment_expression "piVar26 = piVar27" (identifier "piVar26") (= "=") (identifier "piVar27")) (; ";"))) (goto_statement "goto LAB_00028f8c;" (goto "goto") (statement_identifier "LAB_00028f8c") (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00023550(piVar24[2],0,0);" (assignment_expression "iVar7 = FUN_00023550(piVar24[2],0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_00023550(piVar24[2],0,0)" (identifier "FUN_00023550") (argument_list "(piVar24[2],0,0)" (( "(") (subscript_expression "piVar24[2]" (identifier "piVar24") ([ "[") (number_literal "2") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }\n      if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }\n      piVar24 = (int *)FUN_0001ddf0();\n      iVar7 = *DAT_00093c40;\n      *DAT_00093c40 = *(int *)*piVar32;\n      iVar11 = *piVar24;\n      *piVar32 = iVar11;\n      if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }\n      *piVar24 = iVar7;\n      piVar23 = (int *)0x0;\n      piVar26 = piVar27;\n      piVar16 = DAT_00093c40;\n      goto LAB_00028f8c;\n    }" ({ "{") (if_statement "if (piVar24[3] != 0) {\n        do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 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          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);\n      }" ({ "{") (do_statement "do {\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        } while (*(int *)(iVar7 + 0x48) < 0);" (do "do") (compound_statement "{\n          iVar7 = *(int *)(iVar7 + 0x14);\n          if (iVar7 == 0) goto LAB_00029066;\n        }" ({ "{") (expression_statement "iVar7 = *(int *)(iVar7 + 0x14);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0x14)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0x14)" (* "*") (cast_expression "(int *)(iVar7 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00029066;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029066;" (goto "goto") (statement_identifier "LAB_00029066") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(*(int *)(iVar7 + 0x48) < 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x48) < 0" (pointer_expression "*(int *)(iVar7 + 0x48)" (* "*") (cast_expression "(int *)(iVar7 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x48)" (( "(") (binary_expression "iVar7 + 0x48" (identifier "iVar7") (+ "+") (number_literal "0x48")) () ")")))) (< "<") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar23 != (int *)0x0) {\n        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\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        iVar11 = piVar27[5];\n        iVar10 = piVar23[4];\n        *(int *)(iVar11 + 0x10) = iVar10;\n        if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }\n        piVar27[5] = iVar7;\n        iVar10 = 0;\n        iVar11 = 0;\n        *(int **)(iVar7 + 0x10) = piVar27;\n        do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }\n        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));\n        piVar27 = (int *)0x0;\n        if (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar11 = piVar27[5];" (assignment_expression "iVar11 = piVar27[5]" (identifier "iVar11") (= "=") (subscript_expression "piVar27[5]" (identifier "piVar27") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "iVar10 = piVar23[4];" (assignment_expression "iVar10 = piVar23[4]" (identifier "iVar10") (= "=") (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar11 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (iVar10 == 0) {\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }\n        else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          DAT_00093c44 = (int *)(iVar11 + 0x10);\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 == 0) goto LAB_00029bab;\nLAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;\n        }" ({ "{") (expression_statement "DAT_00093c44 = (int *)(iVar11 + 0x10);" (assignment_expression "DAT_00093c44 = (int *)(iVar11 + 0x10)" (identifier "DAT_00093c44") (= "=") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_00029bab;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00029bab;" (goto "goto") (statement_identifier "LAB_00029bab") (; ";"))) (labeled_statement "LAB_0002996d:\n          *(int **)(iVar11 + 0x14) = piVar23;" (statement_identifier "LAB_0002996d") (: ":") (expression_statement "*(int **)(iVar11 + 0x14) = piVar23;" (assignment_expression "*(int **)(iVar11 + 0x14) = piVar23" (pointer_expression "*(int **)(iVar11 + 0x14)" (* "*") (cast_expression "(int **)(iVar11 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "piVar23")) (; ";"))) (} "}")) (else_clause "else {\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" (else "else") (compound_statement "{\n          *(int *)(iVar10 + 0x14) = iVar11;\n          piVar23[4] = *(int *)(iVar7 + 0x10);\n          iVar11 = *(int *)(iVar7 + 0x10);\n          if (iVar11 != 0) goto LAB_0002996d;\nLAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;\n        }" ({ "{") (expression_statement "*(int *)(iVar10 + 0x14) = iVar11;" (assignment_expression "*(int *)(iVar10 + 0x14) = iVar11" (pointer_expression "*(int *)(iVar10 + 0x14)" (* "*") (cast_expression "(int *)(iVar10 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x14)" (( "(") (binary_expression "iVar10 + 0x14" (identifier "iVar10") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar23[4] = *(int *)(iVar7 + 0x10);" (assignment_expression "piVar23[4] = *(int *)(iVar7 + 0x10)" (subscript_expression "piVar23[4]" (identifier "piVar23") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar11 = *(int *)(iVar7 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar7 + 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar11 != 0) goto LAB_0002996d;" (if "if") (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002996d;" (goto "goto") (statement_identifier "LAB_0002996d") (; ";"))) (labeled_statement "LAB_00029bab:\n          DAT_00093c44 = piVar23 + 4;" (statement_identifier "LAB_00029bab") (: ":") (expression_statement "DAT_00093c44 = piVar23 + 4;" (assignment_expression "DAT_00093c44 = piVar23 + 4" (identifier "DAT_00093c44") (= "=") (binary_expression "piVar23 + 4" (identifier "piVar23") (+ "+") (number_literal "4"))) (; ";"))) (} "}")))) (expression_statement "piVar27[5] = iVar7;" (assignment_expression "piVar27[5] = iVar7" (subscript_expression "piVar27[5]" (identifier "piVar27") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int **)(iVar7 + 0x10) = piVar27;" (assignment_expression "*(int **)(iVar7 + 0x10) = piVar27" (pointer_expression "*(int **)(iVar7 + 0x10)" (* "*") (cast_expression "(int **)(iVar7 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "piVar27")) (; ";")) (do_statement "do {\n          piVar27[0x12] = -2 - piVar27[0x12];\n          iVar25 = piVar27[7];\n          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = 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 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {\n            iVar11 = iVar25;\n          }" (if "if") (parenthesized_expression "(((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0))" (( "(") (binary_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)" (parenthesized_expression "((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0))" (( "(") (binary_expression "(iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)" (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar25 + 0xac) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" (* "*") (cast_expression "(int *)(iVar25 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xac)" (( "(") (binary_expression "iVar25 + 0xac" (identifier "iVar25") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar10 = iVar25, iVar11 == 0)" (( "(") (comma_expression "iVar10 = iVar25, iVar11 == 0" (assignment_expression "iVar10 = iVar25" (identifier "iVar10") (= "=") (identifier "iVar25")) (, ",") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            iVar11 = iVar25;\n          }" ({ "{") (expression_statement "iVar11 = iVar25;" (assignment_expression "iVar11 = iVar25" (identifier "iVar11") (= "=") (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 (iVar10 != 0) {\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar25 = *(int *)(iVar7 + 0x1c);\n          if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar25 = *(int *)(iVar7 + 0x1c);" (assignment_expression "iVar25 = *(int *)(iVar7 + 0x1c)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar7 + 0x1c)" (* "*") (cast_expression "(int *)(iVar7 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar25 == 0) {\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }\n          else {\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" (if "if") (parenthesized_expression "(iVar25 == 0)" (( "(") (binary_expression "iVar25 == 0" (identifier "iVar25") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            piVar27 = *(int **)(iVar7 + 0x14);\n            if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              } while (piVar27 != (int *)0x0);\n              piVar27 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "piVar27 = *(int **)(iVar7 + 0x14);" (assignment_expression "piVar27 = *(int **)(iVar7 + 0x14)" (identifier "piVar27") (= "=") (pointer_expression "*(int **)(iVar7 + 0x14)" (* "*") (cast_expression "(int **)(iVar7 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (piVar27 != (int *)0x0) {\n              do {\n                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\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 + 0xac) != 0)) goto LAB_000299ca;\n                piVar27 = (int *)piVar27[5];\n              }" ({ "{") (if_statement "if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;" (if "if") (parenthesized_expression "(((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 0))" (( "(") (binary_expression "((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&\n                   (*(int *)(iVar25 + 0xac) != 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 + 0xac) != 0)" (( "(") (binary_expression "*(int *)(iVar25 + 0xac) != 0" (pointer_expression "*(int *)(iVar25 + 0xac)" (* "*") (cast_expression "(int *)(iVar25 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0xac)" (( "(") (binary_expression "iVar25 + 0xac" (identifier "iVar25") (+ "+") (number_literal "0xac")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000299ca;" (goto "goto") (statement_identifier "LAB_000299ca") (; ";"))) (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_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" (else "else") (compound_statement "{\nLAB_000299ca:\n            piVar27 = (int *)0x0;\n            if (iVar25 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }\n          }" ({ "{") (labeled_statement "LAB_000299ca:\n            piVar27 = (int *)0x0;" (statement_identifier "LAB_000299ca") (: ":") (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 != iVar10) {\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" (if "if") (parenthesized_expression "(iVar25 != iVar10)" (( "(") (binary_expression "iVar25 != iVar10" (identifier "iVar25") (!= "!=") (identifier "iVar10")) () ")")) (compound_statement "{\n              iVar7 = *(int *)(iVar11 + 0x10);\n              iVar28 = *(int *)(iVar10 + 0xc);\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }\n              if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }\n              iVar7 = *(int *)(iVar25 + 0xc);\n              *(int *)(iVar10 + 0xc) = iVar7;\n              if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }\n              *(int *)(iVar11 + 0x10) = iVar25;\n              piVar27 = (int *)0x0;\n              *(int *)(iVar25 + 0xc) = iVar11;\n            }" ({ "{") (expression_statement "iVar7 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar7 = *(int *)(iVar11 + 0x10)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }\n              else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 0x60) = iVar28;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00093cb4 + 0x60) = iVar28;" (assignment_expression "*(int *)(DAT_00093cb4 + 0x60) = iVar28" (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x60)" (( "(") (binary_expression "DAT_00093cb4 + 0x60" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar7 + 0xc) = iVar28;\n                iVar28 = *(int *)(iVar10 + 0xc);\n              }" ({ "{") (expression_statement "*(int *)(iVar7 + 0xc) = iVar28;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar28" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar28")) (; ";")) (expression_statement "iVar28 = *(int *)(iVar10 + 0xc);" (assignment_expression "iVar28 = *(int *)(iVar10 + 0xc)" (identifier "iVar28") (= "=") (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar28 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }\n              else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar7;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar7;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar7" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 100)" (( "(") (binary_expression "DAT_00093cb4 + 100" (identifier "DAT_00093cb4") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar28 + 0x10) = iVar7;\n              }" ({ "{") (expression_statement "*(int *)(iVar28 + 0x10) = iVar7;" (assignment_expression "*(int *)(iVar28 + 0x10) = iVar7" (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 "iVar7")) (; ";")) (} "}")))) (expression_statement "iVar7 = *(int *)(iVar25 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar25 + 0xc)" (identifier "iVar7") (= "=") (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 *)(iVar10 + 0xc) = iVar7;" (assignment_expression "*(int *)(iVar10 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar10 + 0xc)" (* "*") (cast_expression "(int *)(iVar10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }\n              else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                *(int *)(DAT_00093cb4 + 100) = iVar10;\n              }" ({ "{") (expression_statement "*(int *)(DAT_00093cb4 + 100) = iVar10;" (assignment_expression "*(int *)(DAT_00093cb4 + 100) = iVar10" (pointer_expression "*(int *)(DAT_00093cb4 + 100)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 100)" (( "(") (binary_expression "DAT_00093cb4 + 100" (identifier "DAT_00093cb4") (+ "+") (number_literal "100")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" (else "else") (compound_statement "{\n                *(int *)(iVar7 + 0x10) = iVar10;\n              }" ({ "{") (expression_statement "*(int *)(iVar7 + 0x10) = iVar10;" (assignment_expression "*(int *)(iVar7 + 0x10) = iVar10" (pointer_expression "*(int *)(iVar7 + 0x10)" (* "*") (cast_expression "(int *)(iVar7 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (} "}")))) (expression_statement "*(int *)(iVar11 + 0x10) = iVar25;" (assignment_expression "*(int *)(iVar11 + 0x10) = iVar25" (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (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) = iVar11;" (assignment_expression "*(int *)(iVar25 + 0xc) = iVar11" (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 "iVar11")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "piVar24 = (int *)FUN_0001ddf0();" (assignment_expression "piVar24 = (int *)FUN_0001ddf0()" (identifier "piVar24") (= "=") (cast_expression "(int *)FUN_0001ddf0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ddf0()" (identifier "FUN_0001ddf0") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar7 = *DAT_00093c40;" (assignment_expression "iVar7 = *DAT_00093c40" (identifier "iVar7") (= "=") (pointer_expression "*DAT_00093c40" (* "*") (identifier "DAT_00093c40"))) (; ";")) (expression_statement "*DAT_00093c40 = *(int *)*piVar32;" (assignment_expression "*DAT_00093c40 = *(int *)*piVar32" (pointer_expression "*DAT_00093c40" (* "*") (identifier "DAT_00093c40")) (= "=") (pointer_expression "*(int *)*piVar32" (* "*") (cast_expression "(int *)*piVar32" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar32" (* "*") (identifier "piVar32"))))) (; ";")) (expression_statement "iVar11 = *piVar24;" (assignment_expression "iVar11 = *piVar24" (identifier "iVar11") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (; ";")) (expression_statement "*piVar32 = iVar11;" (assignment_expression "*piVar32 = iVar11" (pointer_expression "*piVar32" (* "*") (identifier "piVar32")) (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (iVar11 == 0) {\n        DAT_000938ac = piVar32;\n      }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        DAT_000938ac = piVar32;\n      }" ({ "{") (expression_statement "DAT_000938ac = piVar32;" (assignment_expression "DAT_000938ac = piVar32" (identifier "DAT_000938ac") (= "=") (identifier "piVar32")) (; ";")) (} "}"))) (expression_statement "*piVar24 = iVar7;" (assignment_expression "*piVar24 = iVar7" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (= "=") (identifier "iVar7")) (; ";")) (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 "piVar16 = DAT_00093c40;" (assignment_expression "piVar16 = DAT_00093c40" (identifier "piVar16") (= "=") (identifier "DAT_00093c40")) (; ";")) (goto_statement "goto LAB_00028f8c;" (goto "goto") (statement_identifier "LAB_00028f8c") (; ";")) (} "}"))) (labeled_statement "LAB_00029066:\n    iVar7 = piVar24[2];" (statement_identifier "LAB_00029066") (: ":") (expression_statement "iVar7 = piVar24[2];" (assignment_expression "iVar7 = piVar24[2]" (identifier "iVar7") (= "=") (subscript_expression "piVar24[2]" (identifier "piVar24") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar8,iVar7)" (identifier "FUN_00032ba0") (argument_list "(uVar8,iVar7)" (( "(") (identifier "uVar8") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}")))) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" (identifier "puVar17") (= "=") (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" (identifier "PTR__bfd_std_section_00092fb4") (+ "+") (number_literal "0x180"))) (; ";")) (for_statement "for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {\n    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_000937fc" (identifier "piVar24") (= "=") (identifier "DAT_000937fc")) (; ";") (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    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);\njoined_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }\n  }" ({ "{") (expression_statement "puVar15 = *(undefined4 **)(piVar24[4] + 0x60);" (assignment_expression "puVar15 = *(undefined4 **)(piVar24[4] + 0x60)" (identifier "puVar15") (= "=") (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_r0x000290b4:\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" (statement_identifier "joined_r0x000290b4") (: ":") (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );\n    }" ({ "{") (do_statement "do {\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      } while( true );" (do "do") (compound_statement "{\n        if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }\n        puVar15 = (undefined4 *)puVar15[3];\n        if (puVar15 == (undefined4 *)0x0) break;\n      }" ({ "{") (if_statement "if (puVar15[0x15] == 0) {\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" (if "if") (parenthesized_expression "(puVar15[0x15] == 0)" (( "(") (binary_expression "puVar15[0x15] == 0" (subscript_expression "puVar15[0x15]" (identifier "puVar15") ([ "[") (number_literal "0x15") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;\n          iVar7 = FUN_0001f130();\n          bVar37 = false;\n          bVar38 = iVar7 == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }\n        }" ({ "{") (if_statement "if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;" (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_r0x000290dc;" (goto "goto") (statement_identifier "code_r0x000290dc") (; ";"))) (expression_statement "iVar7 = FUN_0001f130();" (assignment_expression "iVar7 = FUN_0001f130()" (identifier "iVar7") (= "=") (call_expression "FUN_0001f130()" (identifier "FUN_0001f130") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" (identifier "bVar37") (= "=") (false "false")) (; ";")) (expression_statement "bVar38 = iVar7 == 0;" (assignment_expression "bVar38 = iVar7 == 0" (identifier "bVar38") (= "=") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }\n          else {\n            puVar15[0x15] = puVar17;\n          }" (if "if") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (compound_statement "{\n            pbVar3 = (byte *)*puVar15;\n            iVar7 = 7;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)"COMMON";\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }\n          }" ({ "{") (expression_statement "pbVar3 = (byte *)*puVar15;" (assignment_expression "pbVar3 = (byte *)*puVar15" (identifier "pbVar3") (= "=") (cast_expression "(byte *)*puVar15" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" (identifier "iVar7") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" (identifier "pbVar19") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar33 = (byte *)"COMMON";" (assignment_expression "pbVar33 = (byte *)"COMMON"" (identifier "pbVar33") (= "=") (cast_expression "(byte *)"COMMON"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""COMMON"" (" """) (string_content "COMMON") (" """)))) (; ";")) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" (do "do") (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" (identifier "bVar37") (= "=") (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" (identifier "bVar38") (= "=") (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar39")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" (identifier "pbVar33") (= "=") (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" (identifier "pbVar33") (+ "+") (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar39")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (; ";")) (if_statement "if ((!bVar37 && !bVar38) == bVar37) {\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }\n            else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" (if "if") (parenthesized_expression "((!bVar37 && !bVar38) == bVar37)" (( "(") (binary_expression "(!bVar37 && !bVar38) == bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" (( "(") (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" (! "!") (identifier "bVar37")) (&& "&&") (unary_expression "!bVar38" (! "!") (identifier "bVar38"))) () ")")) (== "==") (identifier "bVar37")) () ")")) (compound_statement "{\n              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }\n            }" ({ "{") (if_statement "if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" (if "if") (parenthesized_expression "(((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0))" (( "(") (binary_expression "((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)" (parenthesized_expression "((DAT_00093c80 & 3) != 2)" (( "(") (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(DAT_00093d20 != 0)" (( "(") (binary_expression "DAT_00093d20 != 0" (identifier "DAT_00093d20") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }\n                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);\n              }" ({ "{") (if_statement "if (DAT_000938c0 == 0) {\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" (if "if") (parenthesized_expression "(DAT_000938c0 == 0)" (( "(") (binary_expression "DAT_000938c0 == 0" (identifier "DAT_000938c0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  DAT_000938c0 = FUN_00023550(".bss",0,1);\n                }" ({ "{") (expression_statement "DAT_000938c0 = FUN_00023550(".bss",0,1);" (assignment_expression "DAT_000938c0 = FUN_00023550(".bss",0,1)" (identifier "DAT_000938c0") (= "=") (call_expression "FUN_00023550(".bss",0,1)" (identifier "FUN_00023550") (argument_list "(".bss",0,1)" (( "(") (string_literal "".bss"" (" """) (string_content ".bss") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);" (call_expression "FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" (identifier "FUN_000243d0") (argument_list "(DAT_000938c0 + 8,puVar15,0,DAT_000938c0)" (( "(") (binary_expression "DAT_000938c0 + 8" (identifier "DAT_000938c0") (+ "+") (number_literal "8")) (, ",") (identifier "puVar15") (, ",") (number_literal "0") (, ",") (identifier "DAT_000938c0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" (else "else") (if_statement "if (DAT_00093d9c == 1) {\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }\n            else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" (if "if") (parenthesized_expression "(DAT_00093d9c == 1)" (( "(") (binary_expression "DAT_00093d9c == 1" (identifier "DAT_00093d9c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n              iVar7 = FUN_00023550("/DISCARD/",0,1);\n              if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }\n              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n            }" ({ "{") (expression_statement "iVar7 = FUN_00023550("/DISCARD/",0,1);" (assignment_expression "iVar7 = FUN_00023550("/DISCARD/",0,1)" (identifier "iVar7") (= "=") (call_expression "FUN_00023550("/DISCARD/",0,1)" (identifier "FUN_00023550") (argument_list "("/DISCARD/",0,1)" (( "(") (string_literal ""/DISCARD/"" (" """) (string_content "/DISCARD/") (" """)) (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" (if "if") (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" (( "(") (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (( "(") (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" (( "(") (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" (( "(") (binary_expression "*(byte *)(puVar15 + 5) & 3" (pointer_expression "*(byte *)(puVar15 + 5)" (* "*") (cast_expression "(byte *)(puVar15 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 5)" (( "(") (binary_expression "puVar15 + 5" (identifier "puVar15") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                uVar8 = FUN_000307b0(0,0);\n                *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n              }" ({ "{") (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" (identifier "uVar8") (= "=") (call_expression "FUN_000307b0(0,0)" (identifier "FUN_000307b0") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" (identifier "FUN_000243d0") (argument_list "(iVar7 + 8,puVar15,0,iVar7)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) (, ",") (identifier "puVar15") (, ",") (number_literal "0") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" (else "else") (compound_statement "{\n              if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }\n              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }\n              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);\n              if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }\n              if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }\n            }" ({ "{") (if_statement "if (DAT_00093d9c == 3) {\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" (if "if") (parenthesized_expression "(DAT_00093d9c == 3)" (( "(") (binary_expression "DAT_00093d9c == 3" (identifier "DAT_00093d9c") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                uVar8 = puVar15[0x2b];\n                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);\n                FUN_00032ba0(uVar14,puVar15,uVar8);\n              }" ({ "{") (expression_statement "uVar8 = puVar15[0x2b];" (assignment_expression "uVar8 = puVar15[0x2b]" (identifier "uVar8") (= "=") (subscript_expression "puVar15[0x2b]" (identifier "puVar15") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,puVar15,uVar8);" (call_expression "FUN_00032ba0(uVar14,puVar15,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,puVar15,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "puVar15") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (if_statement "if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {\n                uVar8 = 0;\n              }\n              else {\n                uVar8 = 0x17e;\n              }" (if "if") (parenthesized_expression "((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0))" (( "(") (binary_expression "(DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)" (parenthesized_expression "(DAT_00093db8 == 0)" (( "(") (binary_expression "DAT_00093db8 == 0" (identifier "DAT_00093db8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_000210f0(), iVar7 == 0)" (( "(") (comma_expression "iVar7 = FUN_000210f0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_000210f0()" (identifier "iVar7") (= "=") (call_expression "FUN_000210f0()" (identifier "FUN_000210f0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                uVar8 = 0;\n              }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                uVar8 = 0x17e;\n              }" (else "else") (compound_statement "{\n                uVar8 = 0x17e;\n              }" ({ "{") (expression_statement "uVar8 = 0x17e;" (assignment_expression "uVar8 = 0x17e" (identifier "uVar8") (= "=") (number_literal "0x17e")) (; ";")) (} "}")))) (expression_statement "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);" (assignment_expression "iVar7 = FUN_00031560(puVar15,pbVar3,uVar8)" (identifier "iVar7") (= "=") (call_expression "FUN_00031560(puVar15,pbVar3,uVar8)" (identifier "FUN_00031560") (argument_list "(puVar15,pbVar3,uVar8)" (( "(") (identifier "puVar15") (, ",") (identifier "pbVar3") (, ",") (identifier "uVar8") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar7 = FUN_00023550(pbVar3,uVar8,1);\n                if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }\n                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);\n              }" ({ "{") (expression_statement "iVar7 = FUN_00023550(pbVar3,uVar8,1);" (assignment_expression "iVar7 = FUN_00023550(pbVar3,uVar8,1)" (identifier "iVar7") (= "=") (call_expression "FUN_00023550(pbVar3,uVar8,1)" (identifier "FUN_00023550") (argument_list "(pbVar3,uVar8,1)" (( "(") (identifier "pbVar3") (, ",") (identifier "uVar8") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" (if "if") (parenthesized_expression "((*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))))" (( "(") (binary_expression "(*(int *)(iVar7 + 0x2c) == 0) &&\n                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (parenthesized_expression "(*(int *)(iVar7 + 0x2c) == 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x2c) == 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))" (( "(") (parenthesized_expression "((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0))" (( "(") (binary_expression "(DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)" (binary_expression "(DAT_00093c80 & 3) == 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) (|| "||") (parenthesized_expression "((*(byte *)(puVar15 + 5) & 3) == 0)" (( "(") (binary_expression "(*(byte *)(puVar15 + 5) & 3) == 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 3)" (( "(") (binary_expression "*(byte *)(puVar15 + 5) & 3" (pointer_expression "*(byte *)(puVar15 + 5)" (* "*") (cast_expression "(byte *)(puVar15 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 5)" (( "(") (binary_expression "puVar15 + 5" (identifier "puVar15") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                  uVar8 = FUN_000307b0(0,0);\n                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;\n                }" ({ "{") (expression_statement "uVar8 = FUN_000307b0(0,0);" (assignment_expression "uVar8 = FUN_000307b0(0,0)" (identifier "uVar8") (= "=") (call_expression "FUN_000307b0(0,0)" (identifier "FUN_000307b0") (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar8;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar8" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);" (call_expression "FUN_000243d0(iVar7 + 8,puVar15,0,iVar7)" (identifier "FUN_000243d0") (argument_list "(iVar7 + 8,puVar15,0,iVar7)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) (, ",") (identifier "puVar15") (, ",") (number_literal "0") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_00093d9c == 2) {\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" (if "if") (parenthesized_expression "(DAT_00093d9c == 2)" (( "(") (binary_expression "DAT_00093d9c == 2" (identifier "DAT_00093d9c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n                uVar8 = *(undefined4 *)(iVar7 + 0x18);\n                uVar14 = puVar15[0x2b];\n                uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);\n                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);\n              }" ({ "{") (expression_statement "uVar8 = *(undefined4 *)(iVar7 + 0x18);" (assignment_expression "uVar8 = *(undefined4 *)(iVar7 + 0x18)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar7 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x18)" (( "(") (binary_expression "iVar7 + 0x18" (identifier "iVar7") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "uVar14 = puVar15[0x2b];" (assignment_expression "uVar14 = puVar15[0x2b]" (identifier "uVar14") (= "=") (subscript_expression "puVar15[0x2b]" (identifier "puVar15") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5);" (assignment_expression "uVar20 = dcgettext(0,\n                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"\n                                   ,5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,puVar15,uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar20,puVar15,uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar20,puVar15,uVar14,uVar8)" (( "(") (identifier "uVar20") (, ",") (identifier "puVar15") (, ",") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (} "}")))))) (} "}")) (else_clause "else {\n            puVar15[0x15] = puVar17;\n          }" (else "else") (compound_statement "{\n            puVar15[0x15] = puVar17;\n          }" ({ "{") (expression_statement "puVar15[0x15] = puVar17;" (assignment_expression "puVar15[0x15] = puVar17" (subscript_expression "puVar15[0x15]" (identifier "puVar15") ([ "[") (number_literal "0x15") (] "]")) (= "=") (identifier "puVar17")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (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 "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" (identifier "bVar21") (= "=") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" (identifier "piVar24") (= "=") (identifier "DAT_0009382c")) (; ";")) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" (identifier "piVar26") (= "=") (identifier "DAT_00093c40")) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (if_statement "if (bVar21 != 2) {\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(bVar21 != 2)" (( "(") (binary_expression "bVar21 != 2" (identifier "bVar21") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);\n    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");\n    if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80)" (parenthesized_expression "(**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))" (( "(") (pointer_expression "**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" (* "*") (pointer_expression "*(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" (* "*") (cast_expression "(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_00093cb4 + 4) + 0x18c)" (( "(") (binary_expression "*(int *)(DAT_00093cb4 + 4) + 0x18c" (pointer_expression "*(int *)(DAT_00093cb4 + 4)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 4)" (( "(") (binary_expression "DAT_00093cb4 + 4" (identifier "DAT_00093cb4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18c")) () ")"))))) () ")")) (argument_list "(DAT_00093cb4,&DAT_00093c80)" (( "(") (identifier "DAT_00093cb4") (, ",") (pointer_expression "&DAT_00093c80" (& "&") (identifier "DAT_00093c80")) () ")"))) (; ";")) (expression_statement "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");" (assignment_expression "iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text")" (identifier "iVar7") (= "=") (call_expression "bfd_get_section_by_name(DAT_00093cb4,".text")" (identifier "bfd_get_section_by_name") (argument_list "(DAT_00093cb4,".text")" (( "(") (identifier "DAT_00093cb4") (, ",") (string_literal "".text"" (" """) (string_content ".text") (" """)) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }\n    else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      piVar24 = DAT_0009382c;\n      piVar26 = DAT_00093c40;\n      iVar7 = DAT_00093cb4;\n    }" ({ "{") (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" (identifier "bVar21") (= "=") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3"))) (; ";")) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" (identifier "piVar24") (= "=") (identifier "DAT_0009382c")) (; ";")) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" (identifier "piVar26") (= "=") (identifier "DAT_00093c40")) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (} "}")) (else_clause "else {\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" (else "else") (compound_statement "{\n      bVar21 = DAT_00093c80 & 3;\n      if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n    }" ({ "{") (expression_statement "bVar21 = DAT_00093c80 & 3;" (assignment_expression "bVar21 = DAT_00093c80 & 3" (identifier "bVar21") (= "=") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3"))) (; ";")) (if_statement "if (DAT_00093db0 == 0) {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }\n      else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" (if "if") (parenthesized_expression "(DAT_00093db0 == 0)" (( "(") (binary_expression "DAT_00093db0 == 0" (identifier "DAT_00093db0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" ({ "{") (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar7 + 0x14) & 0xfffffff7" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0xfffffff7"))) (; ";")) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" (identifier "piVar24") (= "=") (identifier "DAT_0009382c")) (; ";")) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" (identifier "piVar26") (= "=") (identifier "DAT_00093c40")) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (} "}")) (else_clause "else {\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" (else "else") (compound_statement "{\n        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;\n        piVar24 = DAT_0009382c;\n        piVar26 = DAT_00093c40;\n        iVar7 = DAT_00093cb4;\n      }" ({ "{") (expression_statement "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;" (assignment_expression "*(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar7 + 0x14) | 8" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "8"))) (; ";")) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" (identifier "piVar24") (= "=") (identifier "DAT_0009382c")) (; ";")) (expression_statement "piVar26 = DAT_00093c40;" (assignment_expression "piVar26 = DAT_00093c40" (identifier "piVar26") (= "=") (identifier "DAT_00093c40")) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (} "}")))) (} "}")))) (} "}"))) (for_statement "for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;\n      piVar26 = (int *)piVar26[4]) {\n    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" (for "for") (( "(") (; ";") (comma_expression "DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_0009382c = piVar24" (identifier "DAT_0009382c") (= "=") (identifier "piVar24")) (, ",") (comma_expression "DAT_00093cb4 = iVar7, piVar26 != (int *)0x0" (assignment_expression "DAT_00093cb4 = iVar7" (identifier "DAT_00093cb4") (= "=") (identifier "iVar7")) (, ",") (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    iVar7 = piVar26[5];\n    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }\n    piVar24 = DAT_0009382c;\n    iVar7 = DAT_00093cb4;\n  }" ({ "{") (expression_statement "iVar7 = piVar26[5];" (assignment_expression "iVar7 = piVar26[5]" (identifier "iVar7") (= "=") (subscript_expression "piVar26[5]" (identifier "piVar26") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" (if "if") (parenthesized_expression "((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))))" (( "(") (binary_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&\n       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))" (parenthesized_expression "(((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0))" (( "(") (binary_expression "((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)" (parenthesized_expression "((iVar7 != 0) && (piVar26[9] == 0))" (( "(") (binary_expression "(iVar7 != 0) && (piVar26[9] == 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (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 *)(iVar7 + 0x20))))" (( "(") (parenthesized_expression "(piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20)))" (( "(") (binary_expression "piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))" (binary_expression "piVar26[0xb] == 0" (subscript_expression "piVar26[0xb]" (identifier "piVar26") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(piVar26[8] == *(int *)(iVar7 + 0x20))" (( "(") (binary_expression "piVar26[8] == *(int *)(iVar7 + 0x20)" (subscript_expression "piVar26[8]" (identifier "piVar26") ([ "[") (number_literal "8") (] "]")) (== "==") (pointer_expression "*(int *)(iVar7 + 0x20)" (* "*") (cast_expression "(int *)(iVar7 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20)" (( "(") (binary_expression "iVar7 + 0x20" (identifier "iVar7") (+ "+") (number_literal "0x20")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      piVar26[9] = *(int *)(iVar7 + 0x24);\n    }" ({ "{") (expression_statement "piVar26[9] = *(int *)(iVar7 + 0x24);" (assignment_expression "piVar26[9] = *(int *)(iVar7 + 0x24)" (subscript_expression "piVar26[9]" (identifier "piVar26") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(int *)(iVar7 + 0x24)" (* "*") (cast_expression "(int *)(iVar7 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x24)" (( "(") (binary_expression "iVar7 + 0x24" (identifier "iVar7") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (expression_statement "piVar24 = DAT_0009382c;" (assignment_expression "piVar24 = DAT_0009382c" (identifier "piVar24") (= "=") (identifier "DAT_0009382c")) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (} "}"))) (if_statement "if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" (if "if") (parenthesized_expression "((DAT_00093d8c != 0) && (DAT_00093828 != 0))" (( "(") (binary_expression "(DAT_00093d8c != 0) && (DAT_00093828 != 0)" (parenthesized_expression "(DAT_00093d8c != 0)" (( "(") (binary_expression "DAT_00093d8c != 0" (identifier "DAT_00093d8c") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00093828 != 0)" (( "(") (binary_expression "DAT_00093828 != 0" (identifier "DAT_00093828") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    piVar26 = piVar24 + DAT_00093828;\n    do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);\n  }" ({ "{") (expression_statement "piVar26 = piVar24 + DAT_00093828;" (assignment_expression "piVar26 = piVar24 + DAT_00093828" (identifier "piVar26") (= "=") (binary_expression "piVar24 + DAT_00093828" (identifier "piVar24") (+ "+") (identifier "DAT_00093828"))) (; ";")) (do_statement "do {\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    } while (piVar24 != piVar26);" (do "do") (compound_statement "{\n      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }\n      piVar24 = piVar24 + 1;\n    }" ({ "{") (while_statement "while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" (while "while") (parenthesized_expression "(iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0)" (( "(") (comma_expression "iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0" (assignment_expression "iVar11 = *piVar24" (identifier "iVar11") (= "=") (pointer_expression "*piVar24" (* "*") (identifier "piVar24"))) (, ",") (binary_expression "(*(byte *)(iVar11 + 0xd) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xd) & 8)" (( "(") (binary_expression "*(byte *)(iVar11 + 0xd) & 8" (pointer_expression "*(byte *)(iVar11 + 0xd)" (* "*") (cast_expression "(byte *)(iVar11 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xd)" (( "(") (binary_expression "iVar11 + 0xd" (identifier "iVar11") (+ "+") (number_literal "0xd")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];\n        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }\n        piVar24 = piVar24 + 1;\n        if (piVar24 == piVar26) goto LAB_00029327;\n      }" ({ "{") (expression_statement "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];" (assignment_expression "puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "(*(undefined4 **)(iVar11 + 0x14))[0x15]" (parenthesized_expression "(*(undefined4 **)(iVar11 + 0x14))" (( "(") (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) () ")")) ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (if_statement "if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           ) {\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" (if "if") (parenthesized_expression "(((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)\n           )" (( "(") (binary_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||\n           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7))" (( "(") (binary_expression "(puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(puVar15[0x2b] != iVar7)" (( "(") (binary_expression "puVar15[0x2b] != iVar7" (subscript_expression "puVar15[0x2b]" (identifier "puVar15") ([ "[") (number_literal "0x2b") (] "]")) (!= "!=") (identifier "iVar7")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)" (( "(") (comma_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0" (assignment_expression "iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" (identifier "iVar10") (= "=") (call_expression "strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" (identifier "strcmp") (argument_list "((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15)" (( "(") (cast_expression "(char *)**(undefined4 **)(iVar11 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(iVar11 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))))) (, ",") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) () ")")))) (, ",") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)(iVar11 + 0xc) = 1;\n          *(undefined4 *)(iVar11 + 0x14) = 0;\n          break;\n        }" ({ "{") (expression_statement "*(undefined1 *)(iVar11 + 0xc) = 1;" (assignment_expression "*(undefined1 *)(iVar11 + 0xc) = 1" (pointer_expression "*(undefined1 *)(iVar11 + 0xc)" (* "*") (cast_expression "(undefined1 *)(iVar11 + 0xc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar11 + 0x14) = 0;" (assignment_expression "*(undefined4 *)(iVar11 + 0x14) = 0" (pointer_expression "*(undefined4 *)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (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_00029327;" (if "if") (parenthesized_expression "(piVar24 == piVar26)" (( "(") (binary_expression "piVar24 == piVar26" (identifier "piVar24") (== "==") (identifier "piVar26")) () ")")) (goto_statement "goto LAB_00029327;" (goto "goto") (statement_identifier "LAB_00029327") (; ";"))) (} "}"))) (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_00029327:\n  if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" (statement_identifier "LAB_00029327") (: ":") (if_statement "if (bVar21 != 2) {\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" (if "if") (parenthesized_expression "(bVar21 != 2)" (( "(") (binary_expression "bVar21 != 2" (identifier "bVar21") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }\n  }" ({ "{") (for_statement "for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;\n        puVar15 = (undefined4 *)puVar15[3]) {\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" (for "for") (( "(") (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" (* "*") (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x60)" (( "(") (binary_expression "DAT_00093cb4 + 0x60" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) () ")") (compound_statement "{\n      pcVar12 = (char *)*puVar15;\n      sVar9 = strlen(pcVar12);\n      pcVar13 = (char *)xmalloc(sVar9 + 10);\n      sprintf(pcVar13,".startof.%s",pcVar12);\n      FUN_0001ec30();\n      builtin_strncpy(pcVar13 + 1,".size",5);\n      FUN_0001ec30();\n      free(pcVar13);\n    }" ({ "{") (expression_statement "pcVar12 = (char *)*puVar15;" (assignment_expression "pcVar12 = (char *)*puVar15" (identifier "pcVar12") (= "=") (cast_expression "(char *)*puVar15" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (expression_statement "sVar9 = strlen(pcVar12);" (assignment_expression "sVar9 = strlen(pcVar12)" (identifier "sVar9") (= "=") (call_expression "strlen(pcVar12)" (identifier "strlen") (argument_list "(pcVar12)" (( "(") (identifier "pcVar12") () ")")))) (; ";")) (expression_statement "pcVar13 = (char *)xmalloc(sVar9 + 10);" (assignment_expression "pcVar13 = (char *)xmalloc(sVar9 + 10)" (identifier "pcVar13") (= "=") (cast_expression "(char *)xmalloc(sVar9 + 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(sVar9 + 10)" (identifier "xmalloc") (argument_list "(sVar9 + 10)" (( "(") (binary_expression "sVar9 + 10" (identifier "sVar9") (+ "+") (number_literal "10")) () ")"))))) (; ";")) (expression_statement "sprintf(pcVar13,".startof.%s",pcVar12);" (call_expression "sprintf(pcVar13,".startof.%s",pcVar12)" (identifier "sprintf") (argument_list "(pcVar13,".startof.%s",pcVar12)" (( "(") (identifier "pcVar13") (, ",") (string_literal "".startof.%s"" (" """) (string_content ".startof.%s") (" """)) (, ",") (identifier "pcVar12") () ")"))) (; ";")) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" (identifier "FUN_0001ec30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "builtin_strncpy(pcVar13 + 1,".size",5);" (call_expression "builtin_strncpy(pcVar13 + 1,".size",5)" (identifier "builtin_strncpy") (argument_list "(pcVar13 + 1,".size",5)" (( "(") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1")) (, ",") (string_literal "".size"" (" """) (string_content ".size") (" """)) (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_0001ec30();" (call_expression "FUN_0001ec30()" (identifier "FUN_0001ec30") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "free(pcVar13);" (call_expression "free(pcVar13)" (identifier "free") (argument_list "(pcVar13)" (( "(") (identifier "pcVar13") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_00031450();" (call_expression "FUN_00031450()" (identifier "FUN_00031450") (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_64 = (void *)xmalloc(0x28);" (assignment_expression "local_64 = (void *)xmalloc(0x28)" (identifier "local_64") (= "=") (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 (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" (for "for") (( "(") (assignment_expression "puVar15 = DAT_00093c38" (identifier "puVar15") (= "=") (identifier "DAT_00093c38")) (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)*puVar15" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) () ")") (compound_statement "{\n    local_6c = (int *)0x0;\n    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }\n    uVar8 = 0;\n    if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }\n    iVar7 = puVar15[5];\n    uVar40 = 0;\n    if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }\n    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);\n    if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }\n  }" ({ "{") (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" (identifier "local_6c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (for_statement "for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }\n      }\n    }" (for "for") (( "(") (assignment_expression "piVar26 = DAT_00093c40" (identifier "piVar26") (= "=") (identifier "DAT_00093c40")) (; ";") (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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }\n        else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }\n        }" ({ "{") (if_statement "if (((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3)))) {\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" (if "if") (parenthesized_expression "(((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))))" (( "(") (binary_expression "((piVar26[0x14] != 2) && (piVar26[7] != 0)) &&\n             (((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)))" (( "(") (parenthesized_expression "((*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3))" (( "(") (binary_expression "(*(byte *)(piVar26[7] + 0x14) & 1) != 0 &&\n              (piVar27 = piVar26, piVar23 = piVar24, puVar15[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, puVar15[2] != 3)" (( "(") (comma_expression "piVar27 = piVar26, piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar27 = piVar26" (identifier "piVar27") (= "=") (identifier "piVar26")) (, ",") (comma_expression "piVar23 = piVar24, puVar15[2] != 3" (assignment_expression "piVar23 = piVar24" (identifier "piVar23") (= "=") (identifier "piVar24")) (, ",") (binary_expression "puVar15[2] != 3" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "3")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\n              piVar27 = (int *)piVar27[4];\n              if (piVar27 == (int *)0x0) break;\n              piVar23 = (int *)piVar27[0xe];\n            }\n            piVar24 = (int *)0x0;\n            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);\n            FUN_00032ba0(uVar8);\n          }" ({ "{") (while_statement "while( true ) {\n              piVar24 = piVar23;\n              if (piVar23 != (int *)0x0) goto LAB_000293ea;\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_000293ea;\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_000293ea;" (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_000293ea;" (goto "goto") (statement_identifier "LAB_000293ea") (; ";"))) (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 "uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }\n        }" (else "else") (compound_statement "{\n          piVar24 = piVar23;\n          piVar27 = (int *)piVar26[7];\n          while (piVar27 != (int *)0x0) {\nLAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\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_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);\n            uVar29 = local_44;\n            if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }\n            piVar23 = (int *)*piVar23;\n            local_44 = uVar29;\n            piVar27 = piVar23;\n          }" ({ "{") (labeled_statement "LAB_000293ea:\n            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" (statement_identifier "LAB_000293ea") (: ":") (expression_statement "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);" (assignment_expression "iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1])" (identifier "iVar7") (= "=") (call_expression "strcmp((char *)piVar23[1],(char *)puVar15[1])" (identifier "strcmp") (argument_list "((char *)piVar23[1],(char *)puVar15[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 *)puVar15[1]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) () ")")))) (; ";"))) (expression_statement "uVar29 = local_44;" (assignment_expression "uVar29 = local_44" (identifier "uVar29") (= "=") (identifier "local_44")) (; ";")) (if_statement "if (iVar7 == 0) {\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }\n              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];\n              local_6c = (int *)((int)local_6c + 1);\n              piVar23[2] = 1;\n            }" ({ "{") (if_statement "if (local_44 <= local_6c) {\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" (if "if") (parenthesized_expression "(local_44 <= local_6c)" (( "(") (binary_expression "local_44 <= local_6c" (identifier "local_44") (<= "<=") (identifier "local_6c")) () ")")) (compound_statement "{\n                uVar29 = local_44 * 2;\n                local_64 = (void *)xrealloc(local_64,local_44 << 3);\n              }" ({ "{") (expression_statement "uVar29 = local_44 * 2;" (assignment_expression "uVar29 = local_44 * 2" (identifier "uVar29") (= "=") (binary_expression "local_44 * 2" (identifier "local_44") (* "*") (number_literal "2"))) (; ";")) (expression_statement "local_64 = (void *)xrealloc(local_64,local_44 << 3);" (assignment_expression "local_64 = (void *)xrealloc(local_64,local_44 << 3)" (identifier "local_64") (= "=") (cast_expression "(void *)xrealloc(local_64,local_44 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(local_64,local_44 << 3)" (identifier "xrealloc") (argument_list "(local_64,local_44 << 3)" (( "(") (identifier "local_64") (, ",") (binary_expression "local_44 << 3" (identifier "local_44") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];" (assignment_expression "*(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7]" (pointer_expression "*(int *)((int)local_64 + (int)local_6c * 4)" (* "*") (cast_expression "(int *)((int)local_64 + (int)local_6c * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + (int)local_6c * 4)" (( "(") (binary_expression "(int)local_64 + (int)local_6c * 4" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (binary_expression "(int)local_6c * 4" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (* "*") (number_literal "4"))) () ")")))) (= "=") (subscript_expression "piVar26[7]" (identifier "piVar26") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "local_6c = (int *)((int)local_6c + 1);" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" (identifier "local_6c") (= "=") (cast_expression "(int *)((int)local_6c + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + 1)" (( "(") (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "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 = uVar29;" (assignment_expression "local_44 = uVar29" (identifier "local_44") (= "=") (identifier "uVar29")) (; ";")) (expression_statement "piVar27 = piVar23;" (assignment_expression "piVar27 = piVar23" (identifier "piVar27") (= "=") (identifier "piVar23")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar15[6] != 0) {\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" (if "if") (parenthesized_expression "(puVar15[6] != 0)" (( "(") (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");\n    }" ({ "{") (expression_statement "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");" (assignment_expression "uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags")" (identifier "uVar8") (= "=") (call_expression "FUN_00030fd0(puVar15[6],0,0,"phdr flags")" (identifier "FUN_00030fd0") (argument_list "(puVar15[6],0,0,"phdr flags")" (( "(") (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (string_literal ""phdr flags"" (" """) (string_content "phdr flags") (" """)) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" (identifier "iVar7") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar40 = 0;" (assignment_expression "uVar40 = 0" (identifier "uVar40") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 != 0) {\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");\n      iVar7 = puVar15[5];\n    }" ({ "{") (expression_statement "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");" (assignment_expression "uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address")" (identifier "uVar40") (= "=") (call_expression "FUN_00030fd0(iVar7,0,0,"phdr load address")" (identifier "FUN_00030fd0") (argument_list "(iVar7,0,0,"phdr load address")" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (string_literal ""phdr load address"" (" """) (string_content "phdr load address") (" """)) () ")")))) (; ";")) (expression_statement "iVar7 = puVar15[5];" (assignment_expression "iVar7 = puVar15[5]" (identifier "iVar7") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64);" (assignment_expression "iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" (identifier "iVar7") (= "=") (call_expression "bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" (identifier "bfd_record_phdr") (argument_list "(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,\n                            puVar15[3],puVar15[4],local_6c,local_64)" (( "(") (identifier "DAT_00093cb4") (, ",") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "puVar15[6] != 0" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (!= "!=") (number_literal "0")) (, ",") (identifier "uVar8") (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (, ",") (identifier "uVar40") (, ",") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "local_6c") (, ",") (identifier "local_64") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);\n      FUN_00032ba0(uVar8);\n    }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "free(local_64);" (call_expression "free(local_64)" (identifier "free") (argument_list "(local_64)" (( "(") (identifier "local_64") () ")"))) (; ";")) (for_statement "for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {\n    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {\n      piVar26 = (int *)piVar24[0xe];\njoined_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }\n    }\n  }" (for "for") (( "(") (assignment_expression "piVar24 = DAT_00093c40" (identifier "piVar24") (= "=") (identifier "DAT_00093c40")) (; ";") (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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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_r0x0002951b:\n      if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" (statement_identifier "joined_r0x0002951b") (: ":") (if_statement "if (piVar26 != (int *)0x0) {\n        do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );\n      }" ({ "{") (do_statement "do {\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        } while( true );" (do "do") (compound_statement "{\n          bVar37 = false;\n          bVar38 = piVar26[2] == 0;\n          if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }\n          piVar26 = (int *)*piVar26;\n          if (piVar26 == (int *)0x0) break;\n        }" ({ "{") (expression_statement "bVar37 = false;" (assignment_expression "bVar37 = false" (identifier "bVar37") (= "=") (false "false")) (; ";")) (expression_statement "bVar38 = piVar26[2] == 0;" (assignment_expression "bVar38 = piVar26[2] == 0" (identifier "bVar38") (= "=") (binary_expression "piVar26[2] == 0" (subscript_expression "piVar26[2]" (identifier "piVar26") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar38) {\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\n          }" (if "if") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (compound_statement "{\n            pbVar3 = (byte *)piVar26[1];\n            iVar7 = 5;\n            pbVar19 = pbVar3;\n            pbVar33 = (byte *)0x3f35d;\n            do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);\n            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;\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 "iVar7 = 5;" (assignment_expression "iVar7 = 5" (identifier "iVar7") (= "=") (number_literal "5")) (; ";")) (expression_statement "pbVar19 = pbVar3;" (assignment_expression "pbVar19 = pbVar3" (identifier "pbVar19") (= "=") (identifier "pbVar3")) (; ";")) (expression_statement "pbVar33 = (byte *)0x3f35d;" (assignment_expression "pbVar33 = (byte *)0x3f35d" (identifier "pbVar33") (= "=") (cast_expression "(byte *)0x3f35d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3f35d"))) (; ";")) (do_statement "do {\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            } while (bVar38);" (do "do") (compound_statement "{\n              if (iVar7 == 0) break;\n              iVar7 = iVar7 + -1;\n              bVar37 = *pbVar19 < *pbVar33;\n              bVar38 = *pbVar19 == *pbVar33;\n              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;\n              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar37 = *pbVar19 < *pbVar33;" (assignment_expression "bVar37 = *pbVar19 < *pbVar33" (identifier "bVar37") (= "=") (binary_expression "*pbVar19 < *pbVar33" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (< "<") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "bVar38 = *pbVar19 == *pbVar33;" (assignment_expression "bVar38 = *pbVar19 == *pbVar33" (identifier "bVar38") (= "=") (binary_expression "*pbVar19 == *pbVar33" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (== "==") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar19 + (uint)bVar39 * -2" (identifier "pbVar19") (+ "+") (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar39")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1" (identifier "pbVar33") (= "=") (binary_expression "pbVar33 + (uint)bVar39 * -2 + 1" (binary_expression "pbVar33 + (uint)bVar39 * -2" (identifier "pbVar33") (+ "+") (binary_expression "(uint)bVar39 * -2" (cast_expression "(uint)bVar39" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar39")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (; ";")) (if_statement "if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;" (if "if") (parenthesized_expression "((!bVar37 && !bVar38) != bVar37)" (( "(") (binary_expression "(!bVar37 && !bVar38) != bVar37" (parenthesized_expression "(!bVar37 && !bVar38)" (( "(") (binary_expression "!bVar37 && !bVar38" (unary_expression "!bVar37" (! "!") (identifier "bVar37")) (&& "&&") (unary_expression "!bVar38" (! "!") (identifier "bVar38"))) () ")")) (!= "!=") (identifier "bVar37")) () ")")) (goto_statement "goto code_r0x00029557;" (goto "goto") (statement_identifier "code_r0x00029557") (; ";"))) (} "}"))) (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_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }\n  }" (if "if") (parenthesized_expression "(((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2))" (( "(") (binary_expression "((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)" (parenthesized_expression "((DAT_00093c82._1_1_ & 0x10) != 0)" (( "(") (binary_expression "(DAT_00093c82._1_1_ & 0x10) != 0" (parenthesized_expression "(DAT_00093c82._1_1_ & 0x10)" (( "(") (binary_expression "DAT_00093c82._1_1_ & 0x10" (field_expression "DAT_00093c82._1_1_" (identifier "DAT_00093c82") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((DAT_00093c80 & 3) != 2)" (( "(") (binary_expression "(DAT_00093c80 & 3) != 2" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    local_20[0] = (char *)0x0;\n    FUN_000261d0();\n    if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_000261d0();" (call_expression "FUN_000261d0()" (identifier "FUN_000261d0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_20[0] == (char *)0x0) {\n      DAT_00093c82._1_1_ = DAT_00093c82._1_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_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;\n    }" ({ "{") (expression_statement "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;" (assignment_expression "DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" (identifier "DAT_00093c82") (. ".") (field_identifier "_1_1_")) (= "=") (binary_expression "DAT_00093c82._1_1_ & 0xef" (field_expression "DAT_00093c82._1_1_" (identifier "DAT_00093c82") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "0xef"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_000269b0(0,1 < DAT_00093c98);" (call_expression "FUN_000269b0(0,1 < DAT_00093c98)" (identifier "FUN_000269b0") (argument_list "(0,1 < DAT_00093c98)" (( "(") (number_literal "0") (, ",") (binary_expression "1 < DAT_00093c98" (number_literal "1") (< "<") (identifier "DAT_00093c98")) () ")"))) (; ";")) (expression_statement "FUN_00031430();" (call_expression "FUN_00031430()" (identifier "FUN_00031430") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = DAT_00093cb4;" (assignment_expression "iVar7 = DAT_00093cb4" (identifier "iVar7") (= "=") (identifier "DAT_00093cb4")) (; ";")) (expression_statement "uVar29 = DAT_0009386c;" (assignment_expression "uVar29 = DAT_0009386c" (identifier "uVar29") (= "=") (identifier "DAT_0009386c")) (; ";")) (if_statement "if (DAT_00093828 != 0) {\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" (if "if") (parenthesized_expression "(DAT_00093828 != 0)" (( "(") (binary_expression "DAT_00093828 != 0" (identifier "DAT_00093828") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    piVar24 = DAT_0009382c + DAT_00093828;\n    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;\n    piVar26 = DAT_0009382c;\n    do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);\n  }" ({ "{") (expression_statement "piVar24 = DAT_0009382c + DAT_00093828;" (assignment_expression "piVar24 = DAT_0009382c + DAT_00093828" (identifier "piVar24") (= "=") (binary_expression "DAT_0009382c + DAT_00093828" (identifier "DAT_0009382c") (+ "+") (identifier "DAT_00093828"))) (; ";")) (expression_statement "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;" (assignment_expression "puVar17 = PTR__bfd_std_section_00092fb4 + 0x180" (identifier "puVar17") (= "=") (binary_expression "PTR__bfd_std_section_00092fb4 + 0x180" (identifier "PTR__bfd_std_section_00092fb4") (+ "+") (number_literal "0x180"))) (; ";")) (expression_statement "piVar26 = DAT_0009382c;" (assignment_expression "piVar26 = DAT_0009382c" (identifier "piVar26") (= "=") (identifier "DAT_0009382c")) (; ";")) (do_statement "do {\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    } while (piVar24 != piVar26);" (do "do") (compound_statement "{\n      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }\n      piVar26 = piVar26 + 1;\n    }" ({ "{") (while_statement "while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" (while "while") (parenthesized_expression "(iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3)" (( "(") (comma_expression "iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (assignment_expression "iVar11 = *piVar26" (identifier "iVar11") (= "=") (pointer_expression "*piVar26" (* "*") (identifier "piVar26"))) (, ",") (binary_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3" (parenthesized_expression "(*(ushort *)(iVar11 + 0xc) & 0x8ff)" (( "(") (binary_expression "*(ushort *)(iVar11 + 0xc) & 0x8ff" (pointer_expression "*(ushort *)(iVar11 + 0xc)" (* "*") (cast_expression "(ushort *)(iVar11 + 0xc)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (& "&") (number_literal "0x8ff")) () ")")) (== "==") (number_literal "3"))) () ")")) (compound_statement "{\n        pcVar12 = *(char **)(iVar11 + 4);\n        local_5c._0_1_ = (byte)uVar29;\n        if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }\n        if (pcVar12[2] != 'i') break;\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);\n        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);\n        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);\n        uVar35 = uVar34;\n        if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }\n        piVar26 = piVar26 + 1;\n        *(uint *)(iVar11 + 0x18) = uVar30;\n        *(uint *)(iVar11 + 0x1c) = uVar35;\n        *(undefined **)(iVar11 + 0x14) = puVar17;\n        if (piVar24 == piVar26) goto LAB_000296b8;\n      }" ({ "{") (expression_statement "pcVar12 = *(char **)(iVar11 + 4);" (assignment_expression "pcVar12 = *(char **)(iVar11 + 4)" (identifier "pcVar12") (= "=") (pointer_expression "*(char **)(iVar11 + 4)" (* "*") (cast_expression "(char **)(iVar11 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "local_5c._0_1_ = (byte)uVar29;" (assignment_expression "local_5c._0_1_ = (byte)uVar29" (field_expression "local_5c._0_1_" (identifier "local_5c") (. ".") (field_identifier "_0_1_")) (= "=") (cast_expression "(byte)uVar29" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar29"))) (; ";")) (if_statement "if (*pcVar12 != '.') {\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(*pcVar12 != '.')" (( "(") (binary_expression "*pcVar12 != '.'" (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);\n          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);\n          *(int *)(iVar11 + 0x14) = iVar10;\n          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }\n          break;\n        }" ({ "{") (expression_statement "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);" (assignment_expression "cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(iVar7 + 4) + 0x18)" (* "*") (cast_expression "(char *)(*(int *)(iVar7 + 4) + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar7 + 4) + 0x18)" (( "(") (binary_expression "*(int *)(iVar7 + 4) + 0x18" (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);" (assignment_expression "iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(*(int *)(iVar11 + 0x14) + 0x54)" (* "*") (cast_expression "(int *)(*(int *)(iVar11 + 0x14) + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x54)" (( "(") (binary_expression "*(int *)(iVar11 + 0x14) + 0x54" (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar11 + 0x14) = iVar10;" (assignment_expression "*(int *)(iVar11 + 0x14) = iVar10" (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (pcVar12[(cVar1 != '\0') + 4] == 'o') {\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" (if "if") (parenthesized_expression "(pcVar12[(cVar1 != '\0') + 4] == 'o')" (( "(") (binary_expression "pcVar12[(cVar1 != '\0') + 4] == 'o'" (subscript_expression "pcVar12[(cVar1 != '\0') + 4]" (identifier "pcVar12") ([ "[") (binary_expression "(cVar1 != '\0') + 4" (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (+ "+") (number_literal "4")) (] "]")) (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (compound_statement "{\n            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);\n            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);\n            uVar35 = uVar34;\n            if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }\n            *(uint *)(iVar11 + 0x18) = uVar30;\n            *(uint *)(iVar11 + 0x1c) = uVar35;\n          }" ({ "{") (expression_statement "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" (identifier "uVar34") (= "=") (binary_expression "*(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" (* "*") (cast_expression "(uint *)(iVar10 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")")))) (>> ">>") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (identifier "uVar30") (= "=") (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |\n                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x2c)" (* "*") (cast_expression "(uint *)(iVar10 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x2c)" (( "(") (binary_expression "iVar10 + 0x2c" (identifier "iVar10") (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "*(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(iVar10 + 0x30)" (* "*") (cast_expression "(uint *)(iVar10 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x30)" (( "(") (binary_expression "iVar10 + 0x30" (identifier "iVar10") (+ "+") (number_literal "0x30")) () ")")))) (<< "<<") (binary_expression "0x20 - ((byte)local_5c & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")")))))) (; ";")) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" (identifier "uVar35") (= "=") (identifier "uVar34")) (; ";")) (if_statement "if ((uVar29 & 0x20) != 0) {\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" (if "if") (parenthesized_expression "((uVar29 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" (( "(") (binary_expression "uVar29 & 0x20" (identifier "uVar29") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar35 = 0;\n              uVar30 = uVar34;\n            }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" (identifier "uVar30") (= "=") (identifier "uVar34")) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar30")) (; ";")) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar11 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar35")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (pcVar12[2] != 'i') break;" (if "if") (parenthesized_expression "(pcVar12[2] != 'i')" (( "(") (binary_expression "pcVar12[2] != 'i'" (subscript_expression "pcVar12[2]" (identifier "pcVar12") ([ "[") (number_literal "2") (] "]")) (!= "!=") (char_literal "'i'" (' "'") (character "i") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" (identifier "uVar30") (= "=") (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" (* "*") (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x30)" (( "(") (binary_expression "*(int *)(iVar11 + 0x14) + 0x30" (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "uVar34 = uVar30 >> ((byte)local_5c & 0x1f);" (assignment_expression "uVar34 = uVar30 >> ((byte)local_5c & 0x1f)" (identifier "uVar34") (= "=") (binary_expression "uVar30 >> ((byte)local_5c & 0x1f)" (identifier "uVar30") (>> ">>") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);" (assignment_expression "uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" (identifier "uVar30") (= "=") (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |\n                 uVar30 << 0x20 - ((byte)local_5c & 0x1f)" (binary_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f)" (pointer_expression "*(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" (* "*") (cast_expression "(uint *)(*(int *)(iVar11 + 0x14) + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0x14) + 0x2c)" (( "(") (binary_expression "*(int *)(iVar11 + 0x14) + 0x2c" (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "0x2c")) () ")")))) (>> ">>") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")"))) (| "|") (binary_expression "uVar30 << 0x20 - ((byte)local_5c & 0x1f)" (identifier "uVar30") (<< "<<") (binary_expression "0x20 - ((byte)local_5c & 0x1f)" (number_literal "0x20") (- "-") (parenthesized_expression "((byte)local_5c & 0x1f)" (( "(") (binary_expression "(byte)local_5c & 0x1f" (cast_expression "(byte)local_5c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_5c")) (& "&") (number_literal "0x1f")) () ")")))))) (; ";")) (expression_statement "uVar35 = uVar34;" (assignment_expression "uVar35 = uVar34" (identifier "uVar35") (= "=") (identifier "uVar34")) (; ";")) (if_statement "if ((uVar29 & 0x20) != 0) {\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" (if "if") (parenthesized_expression "((uVar29 & 0x20) != 0)" (( "(") (binary_expression "(uVar29 & 0x20) != 0" (parenthesized_expression "(uVar29 & 0x20)" (( "(") (binary_expression "uVar29 & 0x20" (identifier "uVar29") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar35 = 0;\n          uVar30 = uVar34;\n        }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar30 = uVar34;" (assignment_expression "uVar30 = uVar34" (identifier "uVar30") (= "=") (identifier "uVar34")) (; ";")) (} "}"))) (expression_statement "piVar26 = piVar26 + 1;" (assignment_expression "piVar26 = piVar26 + 1" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 1" (identifier "piVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(iVar11 + 0x18) = uVar30;" (assignment_expression "*(uint *)(iVar11 + 0x18) = uVar30" (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "uVar30")) (; ";")) (expression_statement "*(uint *)(iVar11 + 0x1c) = uVar35;" (assignment_expression "*(uint *)(iVar11 + 0x1c) = uVar35" (pointer_expression "*(uint *)(iVar11 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar11 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar35")) (; ";")) (expression_statement "*(undefined **)(iVar11 + 0x14) = puVar17;" (assignment_expression "*(undefined **)(iVar11 + 0x14) = puVar17" (pointer_expression "*(undefined **)(iVar11 + 0x14)" (* "*") (cast_expression "(undefined **)(iVar11 + 0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (piVar24 == piVar26) goto LAB_000296b8;" (if "if") (parenthesized_expression "(piVar24 == piVar26)" (( "(") (binary_expression "piVar24 == piVar26" (identifier "piVar24") (== "==") (identifier "piVar26")) () ")")) (goto_statement "goto LAB_000296b8;" (goto "goto") (statement_identifier "LAB_000296b8") (; ";"))) (} "}"))) (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_000296b8:\n  FUN_00025190(4);" (statement_identifier "LAB_000296b8") (: ":") (expression_statement "FUN_00025190(4);" (call_expression "FUN_00025190(4)" (identifier "FUN_00025190") (argument_list "(4)" (( "(") (number_literal "4") () ")"))) (; ";"))) (expression_statement "FUN_00031490();" (call_expression "FUN_00031490()" (identifier "FUN_00031490") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00031320();" (call_expression "FUN_00031320()" (identifier "FUN_00031320") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" (identifier "puVar15") (= "=") (identifier "DAT_0009383c")) (; ";")) (if_statement "if (DAT_00093d38 != '\0') {\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" (if "if") (parenthesized_expression "(DAT_00093d38 != '\0')" (( "(") (binary_expression "DAT_00093d38 != '\0'" (identifier "DAT_00093d38") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);\n    uVar35 = iVar7 - 1U >> 5 & 1;\n    bVar39 = (byte)(iVar7 - 1U);\n    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);\n    iVar7 = uVar29 * 2;\n    uVar30 = iVar7 - 1;\n    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);\n    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);\n    if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }\n    puVar15 = DAT_0009383c;\n    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }\n  }" ({ "{") (expression_statement "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);" (assignment_expression "iVar7 = bfd_arch_bits_per_address(DAT_00093cb4)" (identifier "iVar7") (= "=") (call_expression "bfd_arch_bits_per_address(DAT_00093cb4)" (identifier "bfd_arch_bits_per_address") (argument_list "(DAT_00093cb4)" (( "(") (identifier "DAT_00093cb4") () ")")))) (; ";")) (expression_statement "uVar35 = iVar7 - 1U >> 5 & 1;" (assignment_expression "uVar35 = iVar7 - 1U >> 5 & 1" (identifier "uVar35") (= "=") (binary_expression "iVar7 - 1U >> 5 & 1" (binary_expression "iVar7 - 1U >> 5" (binary_expression "iVar7 - 1U" (identifier "iVar7") (- "-") (number_literal "1U")) (>> ">>") (number_literal "5")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "bVar39 = (byte)(iVar7 - 1U);" (assignment_expression "bVar39 = (byte)(iVar7 - 1U)" (identifier "bVar39") (= "=") (call_expression "(byte)(iVar7 - 1U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(iVar7 - 1U)" (( "(") (binary_expression "iVar7 - 1U" (identifier "iVar7") (- "-") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);" (assignment_expression "uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f)" (identifier "uVar29") (= "=") (binary_expression "(uVar35 ^ 1) << (bVar39 & 0x1f)" (parenthesized_expression "(uVar35 ^ 1)" (( "(") (binary_expression "uVar35 ^ 1" (identifier "uVar35") (^ "^") (number_literal "1")) () ")")) (<< "<<") (parenthesized_expression "(bVar39 & 0x1f)" (( "(") (binary_expression "bVar39 & 0x1f" (identifier "bVar39") (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar7 = uVar29 * 2;" (assignment_expression "iVar7 = uVar29 * 2" (identifier "iVar7") (= "=") (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar30 = iVar7 - 1;" (assignment_expression "uVar30 = iVar7 - 1" (identifier "uVar30") (= "=") (binary_expression "iVar7 - 1" (identifier "iVar7") (- "-") (number_literal "1"))) (; ";")) (expression_statement "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);" (assignment_expression "puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60)" (identifier "puVar15") (= "=") (pointer_expression "*(undefined4 **)(DAT_00093cb4 + 0x60)" (* "*") (cast_expression "(undefined4 **)(DAT_00093cb4 + 0x60)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x60)" (( "(") (binary_expression "DAT_00093cb4 + 0x60" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);" (assignment_expression "uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" (identifier "uVar29") (= "=") (binary_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0)" (parenthesized_expression "(((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1)" (( "(") (binary_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1" (parenthesized_expression "((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f)" (( "(") (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f" (binary_expression "(uVar35 << (bVar39 & 0x1f)) << 1" (parenthesized_expression "(uVar35 << (bVar39 & 0x1f))" (( "(") (binary_expression "uVar35 << (bVar39 & 0x1f)" (identifier "uVar35") (<< "<<") (parenthesized_expression "(bVar39 & 0x1f)" (( "(") (binary_expression "bVar39 & 0x1f" (identifier "bVar39") (& "&") (number_literal "0x1f")) () ")"))) () ")")) (<< "<<") (number_literal "1")) (| "|") (binary_expression "uVar29 >> 0x1f" (identifier "uVar29") (>> ">>") (number_literal "0x1f"))) () ")")) (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (puVar15 != (undefined4 *)0x0) {\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" (if "if") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);\n    }" ({ "{") (do_statement "do {\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      } while (puVar15 != (undefined4 *)0x0);" (do "do") (compound_statement "{\n        if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }\nLAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];\n      }" ({ "{") (if_statement "if ((*(byte *)(puVar15 + 5) & 1) != 0) {\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" (if "if") (parenthesized_expression "((*(byte *)(puVar15 + 5) & 1) != 0)" (( "(") (binary_expression "(*(byte *)(puVar15 + 5) & 1) != 0" (parenthesized_expression "(*(byte *)(puVar15 + 5) & 1)" (( "(") (binary_expression "*(byte *)(puVar15 + 5) & 1" (pointer_expression "*(byte *)(puVar15 + 5)" (* "*") (cast_expression "(byte *)(puVar15 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 5)" (( "(") (binary_expression "puVar15 + 5" (identifier "puVar15") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar35 = puVar15[7];\n          uVar34 = puVar15[0xb];\n          uVar31 = uVar30 & uVar35 + uVar34;\n          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);\n          if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }\n          uVar14 = dcgettext(0,pcVar12,5);\n          FUN_00032ba0(uVar14,uVar8);\n        }" ({ "{") (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" (identifier "uVar35") (= "=") (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar34 = puVar15[0xb];" (assignment_expression "uVar34 = puVar15[0xb]" (identifier "uVar34") (= "=") (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "uVar31 = uVar30 & uVar35 + uVar34;" (assignment_expression "uVar31 = uVar30 & uVar35 + uVar34" (identifier "uVar31") (= "=") (binary_expression "uVar30 & uVar35 + uVar34" (identifier "uVar30") (& "&") (binary_expression "uVar35 + uVar34" (identifier "uVar35") (+ "+") (identifier "uVar34")))) (; ";")) (expression_statement "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);" (assignment_expression "uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" (identifier "uVar36") (= "=") (binary_expression "uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" (identifier "uVar29") (& "&") (binary_expression "puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34)" (binary_expression "puVar15[8] + puVar15[0xc]" (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) (+ "+") (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar35,uVar34)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar35,uVar34)" (identifier "CARRY4") (argument_list "(uVar35,uVar34)" (( "(") (identifier "uVar35") (, ",") (identifier "uVar34") () ")"))))))) (; ";")) (if_statement "if ((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }\n          else {\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" (if "if") (parenthesized_expression "((uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18))" (( "(") (binary_expression "(uVar36 == 0 && uVar31 == 0) ||\n             (uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" (parenthesized_expression "(uVar36 == 0 && uVar31 == 0)" (( "(") (binary_expression "uVar36 == 0 && uVar31 == 0" (binary_expression "uVar36 == 0" (identifier "uVar36") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar31 == 0" (identifier "uVar31") (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)" (( "(") (comma_expression "uVar18 = uVar29 & puVar15[8],\n             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (assignment_expression "uVar18 = uVar29 & puVar15[8]" (identifier "uVar18") (= "=") (binary_expression "uVar29 & puVar15[8]" (identifier "uVar29") (& "&") (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")))) (, ",") (binary_expression "uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (binary_expression "uVar18 <= uVar36" (identifier "uVar18") (<= "<=") (identifier "uVar36")) (&& "&&") (binary_expression "(uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18" (call_expression "(uint)(uVar31 < (uVar30 & uVar35))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar31 < (uVar30 & uVar35))" (( "(") (binary_expression "uVar31 < (uVar30 & uVar35)" (identifier "uVar31") (< "<") (parenthesized_expression "(uVar30 & uVar35)" (( "(") (binary_expression "uVar30 & uVar35" (identifier "uVar30") (& "&") (identifier "uVar35")) () ")"))) () ")"))) (<= "<=") (binary_expression "uVar36 - uVar18" (identifier "uVar36") (- "-") (identifier "uVar18"))))) () ")"))) () ")")) (compound_statement "{\n            uVar35 = puVar15[9];\n            uVar31 = uVar30 & uVar34 + uVar35;\n            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;\n            if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s LMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar35 = puVar15[9];" (assignment_expression "uVar35 = puVar15[9]" (identifier "uVar35") (= "=") (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar31 = uVar30 & uVar34 + uVar35;" (assignment_expression "uVar31 = uVar30 & uVar34 + uVar35" (identifier "uVar31") (= "=") (binary_expression "uVar30 & uVar34 + uVar35" (identifier "uVar30") (& "&") (binary_expression "uVar34 + uVar35" (identifier "uVar34") (+ "+") (identifier "uVar35")))) (; ";")) (expression_statement "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;" (assignment_expression "uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" (identifier "uVar34") (= "=") (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29" (binary_expression "puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35)" (binary_expression "puVar15[0xc] + puVar15[10]" (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]")) (+ "+") (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar34,uVar35)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar34,uVar35)" (identifier "CARRY4") (argument_list "(uVar34,uVar35)" (( "(") (identifier "uVar34") (, ",") (identifier "uVar35") () ")"))))) (& "&") (identifier "uVar29"))) (; ";")) (if_statement "if ((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))\n            goto LAB_0002a1a0;" (if "if") (parenthesized_expression "((uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))" (( "(") (binary_expression "(uVar34 == 0 && uVar31 == 0) ||\n               (uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" (parenthesized_expression "(uVar34 == 0 && uVar31 == 0)" (( "(") (binary_expression "uVar34 == 0 && uVar31 == 0" (binary_expression "uVar34 == 0" (identifier "uVar34") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar31 == 0" (identifier "uVar31") (== "==") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36)" (( "(") (comma_expression "uVar36 = puVar15[10] & uVar29,\n               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (assignment_expression "uVar36 = puVar15[10] & uVar29" (identifier "uVar36") (= "=") (binary_expression "puVar15[10] & uVar29" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (& "&") (identifier "uVar29"))) (, ",") (binary_expression "uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (binary_expression "uVar36 <= uVar34" (identifier "uVar36") (<= "<=") (identifier "uVar34")) (&& "&&") (binary_expression "(uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36" (call_expression "(uint)(uVar31 < (uVar35 & uVar30))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar31 < (uVar35 & uVar30))" (( "(") (binary_expression "uVar31 < (uVar35 & uVar30)" (identifier "uVar31") (< "<") (parenthesized_expression "(uVar35 & uVar30)" (( "(") (binary_expression "uVar35 & uVar30" (identifier "uVar35") (& "&") (identifier "uVar30")) () ")"))) () ")"))) (<= "<=") (binary_expression "uVar34 - uVar36" (identifier "uVar34") (- "-") (identifier "uVar36"))))) () ")"))) () ")")) (goto_statement "goto LAB_0002a1a0;" (goto "goto") (statement_identifier "LAB_0002a1a0") (; ";"))) (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "pcVar12 = "%X%P: section %s LMA wraps around address space\n";" (assignment_expression "pcVar12 = "%X%P: section %s LMA wraps around address space\n"" (identifier "pcVar12") (= "=") (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            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" (else "else") (compound_statement "{\n            uVar8 = *puVar15;\n            pcVar12 = "%X%P: section %s VMA wraps around address space\n";\n          }" ({ "{") (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "pcVar12 = "%X%P: section %s VMA wraps around address space\n";" (assignment_expression "pcVar12 = "%X%P: section %s VMA wraps around address space\n"" (identifier "pcVar12") (= "=") (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 "uVar14 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar14 = dcgettext(0,pcVar12,5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,pcVar12,5)" (identifier "dcgettext") (argument_list "(0,pcVar12,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar12") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002a1a0:\n        puVar15 = (undefined4 *)puVar15[3];" (statement_identifier "LAB_0002a1a0") (: ":") (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(puVar15 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" (identifier "puVar15") (= "=") (identifier "DAT_0009383c")) (; ";")) (if_statement "if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" (if "if") (parenthesized_expression "(1 < *(uint *)(DAT_00093cb4 + 0x68))" (( "(") (binary_expression "1 < *(uint *)(DAT_00093cb4 + 0x68)" (number_literal "1") (< "<") (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" (* "*") (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x68)" (( "(") (binary_expression "DAT_00093cb4 + 0x68" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (compound_statement "{\n      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);\n      uVar29 = 0;\n      iVar7 = *(int *)(DAT_00093cb4 + 0x60);\n      if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }\n      free(piVar24);\n      puVar15 = DAT_0009383c;\n    }" ({ "{") (expression_statement "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);" (assignment_expression "piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" (identifier "piVar24") (= "=") (cast_expression "(int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3)" (identifier "xmalloc") (argument_list "(*(uint *)(DAT_00093cb4 + 0x68) << 3)" (( "(") (binary_expression "*(uint *)(DAT_00093cb4 + 0x68) << 3" (pointer_expression "*(uint *)(DAT_00093cb4 + 0x68)" (* "*") (cast_expression "(uint *)(DAT_00093cb4 + 0x68)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x68)" (( "(") (binary_expression "DAT_00093cb4 + 0x68" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x68")) () ")")))) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "uVar29 = 0;" (assignment_expression "uVar29 = 0" (identifier "uVar29") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = *(int *)(DAT_00093cb4 + 0x60);" (assignment_expression "iVar7 = *(int *)(DAT_00093cb4 + 0x60)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(DAT_00093cb4 + 0x60)" (* "*") (cast_expression "(int *)(DAT_00093cb4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00093cb4 + 0x60)" (( "(") (binary_expression "DAT_00093cb4 + 0x60" (identifier "DAT_00093cb4") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) {\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);\n        if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }\n      }" ({ "{") (do_statement "do {\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        } while (iVar7 != 0);" (do "do") (compound_statement "{\n          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }\n          iVar7 = *(int *)(iVar7 + 0xc);\n        }" ({ "{") (if_statement "if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" (if "if") (parenthesized_expression "((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0))" (( "(") (binary_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))\n             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" (parenthesized_expression "(((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))" (( "(") (binary_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(iVar7 + 0x14) & 1) != 0" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 1)" (( "(") (binary_expression "*(uint *)(iVar7 + 0x14) & 1" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400)" (( "(") (binary_expression "(*(uint *)(iVar7 + 0x14) & 0x402) != 0x400" (parenthesized_expression "(*(uint *)(iVar7 + 0x14) & 0x402)" (( "(") (binary_expression "*(uint *)(iVar7 + 0x14) & 0x402" (pointer_expression "*(uint *)(iVar7 + 0x14)" (* "*") (cast_expression "(uint *)(iVar7 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "0x402")) () ")")) (!= "!=") (number_literal "0x400")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)" (( "(") (binary_expression "*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0" (binary_expression "*(int *)(iVar7 + 0x30) != 0" (pointer_expression "*(int *)(iVar7 + 0x30)" (* "*") (cast_expression "(int *)(iVar7 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "*(int *)(iVar7 + 0x2c) != 0" (pointer_expression "*(int *)(iVar7 + 0x2c)" (* "*") (cast_expression "(int *)(iVar7 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            iVar11 = uVar29 * 2;\n            uVar29 = uVar29 + 1;\n            piVar24[iVar11] = iVar7;\n            (piVar24 + iVar11)[1] = 0;\n          }" ({ "{") (expression_statement "iVar11 = uVar29 * 2;" (assignment_expression "iVar11 = uVar29 * 2" (identifier "iVar11") (= "=") (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar29 = uVar29 + 1;" (assignment_expression "uVar29 = uVar29 + 1" (identifier "uVar29") (= "=") (binary_expression "uVar29 + 1" (identifier "uVar29") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar24[iVar11] = iVar7;" (assignment_expression "piVar24[iVar11] = iVar7" (subscript_expression "piVar24[iVar11]" (identifier "piVar24") ([ "[") (identifier "iVar11") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "(piVar24 + iVar11)[1] = 0;" (assignment_expression "(piVar24 + iVar11)[1] = 0" (subscript_expression "(piVar24 + iVar11)[1]" (parenthesized_expression "(piVar24 + iVar11)" (( "(") (binary_expression "piVar24 + iVar11" (identifier "piVar24") (+ "+") (identifier "iVar11")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar7 = *(int *)(iVar7 + 0xc);" (assignment_expression "iVar7 = *(int *)(iVar7 + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (1 < uVar29) {\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" (if "if") (parenthesized_expression "(1 < uVar29)" (( "(") (binary_expression "1 < uVar29" (number_literal "1") (< "<") (identifier "uVar29")) () ")")) (compound_statement "{\n          qsort(piVar24,uVar29,8,FUN_0001def0);\n          local_4c = (undefined4 *)0x0;\n          local_48 = 0;\n          local_5c = 0;\n          local_58 = 0;\n          piVar26 = piVar24;\n          puVar15 = (undefined4 *)0x0;\n          do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);\nLAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);\n          puVar15 = (undefined4 *)*piVar24;\n          uVar36 = 1;\n          uVar30 = puVar15[8];\n          uVar35 = puVar15[7];\n          uVar34 = uVar30;\n          uVar31 = uVar35;\n          do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);\n          bVar39 = (byte)DAT_0009386c & 0x1f;\n          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n          uVar31 = uVar36;\n          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n          if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }\n          local_6c = (int *)0x0;\n          uVar36 = uVar34 + (uVar35 - 1);\n          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }\nLAB_0002a9b9:\n          free(piVar24);\n          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }\n          goto joined_r0x000296eb;\n        }" ({ "{") (expression_statement "qsort(piVar24,uVar29,8,FUN_0001def0);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001def0)" (identifier "qsort") (argument_list "(piVar24,uVar29,8,FUN_0001def0)" (( "(") (identifier "piVar24") (, ",") (identifier "uVar29") (, ",") (number_literal "8") (, ",") (identifier "FUN_0001def0") () ")"))) (; ";")) (expression_statement "local_4c = (undefined4 *)0x0;" (assignment_expression "local_4c = (undefined4 *)0x0" (identifier "local_4c") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar26 = piVar24;" (assignment_expression "piVar26 = piVar24" (identifier "piVar26") (= "=") (identifier "piVar24")) (; ";")) (expression_statement "puVar15 = (undefined4 *)0x0;" (assignment_expression "puVar15 = (undefined4 *)0x0" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          } while (piVar24 + uVar29 * 2 != piVar26);" (do "do") (compound_statement "{\n            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }\n            local_48 = uVar30;\n            local_4c = puVar4;\n            local_58 = uVar34;\n            local_5c = uVar35;\n            puVar15 = puVar6;\n            piVar26 = piVar26 + 2;\n          }" ({ "{") (while_statement "while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0) {\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" (while "while") (parenthesized_expression "(puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0)" (( "(") (comma_expression "puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar22 = (undefined4 *)*piVar26" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)*piVar26" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar26" (* "*") (identifier "piVar26")))) (, ",") (comma_expression "puVar6 = puVar15, uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar6 = puVar15" (identifier "puVar6") (= "=") (identifier "puVar15")) (, ",") (comma_expression "uVar35 = local_5c,\n                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar35 = local_5c" (identifier "uVar35") (= "=") (identifier "local_5c")) (, ",") (comma_expression "uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar34 = local_58" (identifier "uVar34") (= "=") (identifier "local_58")) (, ",") (comma_expression "puVar4 = local_4c, uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "puVar4 = local_4c" (identifier "puVar4") (= "=") (identifier "local_4c")) (, ",") (comma_expression "uVar30 = local_48,\n                  (*(byte *)(puVar22 + 5) & 2) != 0" (assignment_expression "uVar30 = local_48" (identifier "uVar30") (= "=") (identifier "local_48")) (, ",") (binary_expression "(*(byte *)(puVar22 + 5) & 2) != 0" (parenthesized_expression "(*(byte *)(puVar22 + 5) & 2)" (( "(") (binary_expression "*(byte *)(puVar22 + 5) & 2" (pointer_expression "*(byte *)(puVar22 + 5)" (* "*") (cast_expression "(byte *)(puVar22 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22 + 5)" (( "(") (binary_expression "puVar22 + 5" (identifier "puVar22") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")))))))) () ")")) (compound_statement "{\n              puVar4 = (undefined4 *)puVar22[9];\n              uVar30 = puVar22[10];\n              bVar39 = (byte)DAT_0009386c & 0x1f;\n              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);\n              uVar31 = uVar35;\n              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;\n              if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }\n              uVar35 = uVar34 + ((int)puVar4 - 1U);\n              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);\n              puVar6 = puVar22;\n              if (puVar15 == (undefined4 *)0x0) break;\n              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }\n              piVar26 = piVar26 + 2;\n              puVar15 = puVar22;\n              local_5c = uVar35;\n              local_58 = uVar34;\n              local_4c = puVar4;\n              local_48 = uVar30;\n              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;\n            }" ({ "{") (expression_statement "puVar4 = (undefined4 *)puVar22[9];" (assignment_expression "puVar4 = (undefined4 *)puVar22[9]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar22[9]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar22[9]" (identifier "puVar22") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "uVar30 = puVar22[10];" (assignment_expression "uVar30 = puVar22[10]" (identifier "uVar30") (= "=") (subscript_expression "puVar22[10]" (identifier "puVar22") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" (identifier "bVar39") (= "=") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" (identifier "uVar35") (= "=") (binary_expression "(uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar22[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar22[0xc]" (identifier "puVar22") ([ "[") (number_literal "0xc") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" (identifier "uVar31") (= "=") (identifier "uVar35")) (; ";")) (expression_statement "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" (identifier "uVar34") (= "=") (binary_expression "(uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar22[0xb] >> bVar39" (cast_expression "(uint)puVar22[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar22[0xb]" (identifier "puVar22") ([ "[") (number_literal "0xb") (] "]"))) (>> ">>") (identifier "bVar39")) (| "|") (binary_expression "puVar22[0xc] << 0x20 - bVar39" (subscript_expression "puVar22[0xc]" (identifier "puVar22") ([ "[") (number_literal "0xc") (] "]")) (<< "<<") (binary_expression "0x20 - bVar39" (number_literal "0x20") (- "-") (identifier "bVar39"))))) (; ";")) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" (if "if") (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" (( "(") (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" (( "(") (binary_expression "DAT_0009386c & 0x20" (identifier "DAT_0009386c") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar31 = 0;\n                uVar34 = uVar35;\n              }" ({ "{") (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" (identifier "uVar31") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = uVar35;" (assignment_expression "uVar34 = uVar35" (identifier "uVar34") (= "=") (identifier "uVar35")) (; ";")) (} "}"))) (expression_statement "uVar35 = uVar34 + ((int)puVar4 - 1U);" (assignment_expression "uVar35 = uVar34 + ((int)puVar4 - 1U)" (identifier "uVar35") (= "=") (binary_expression "uVar34 + ((int)puVar4 - 1U)" (identifier "uVar34") (+ "+") (parenthesized_expression "((int)puVar4 - 1U)" (( "(") (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" (identifier "uVar34") (= "=") (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +\n                       (uint)CARRY4(uVar34,(int)puVar4 - 1U)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0)" (binary_expression "uVar31 + (uVar30 - 1)" (identifier "uVar31") (+ "+") (parenthesized_expression "(uVar30 - 1)" (( "(") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1")) () ")"))) (+ "+") (call_expression "(uint)(puVar4 != (undefined4 *)0x0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar34,(int)puVar4 - 1U)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar34,(int)puVar4 - 1U)" (identifier "CARRY4") (argument_list "(uVar34,(int)puVar4 - 1U)" (( "(") (identifier "uVar34") (, ",") (binary_expression "(int)puVar4 - 1U" (cast_expression "(int)puVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar4")) (- "-") (number_literal "1U")) () ")")))))) (; ";")) (expression_statement "puVar6 = puVar22;" (assignment_expression "puVar6 = puVar22" (identifier "puVar6") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) break;" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" (if "if") (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)))" (( "(") (binary_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||\n                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30)" (( "(") (binary_expression "uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" (identifier "uVar30") (<= "<=") (identifier "local_58")) (&& "&&") (binary_expression "(uint)(local_5c < puVar4) <= local_58 - uVar30" (call_expression "(uint)(local_5c < puVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < puVar4)" (( "(") (binary_expression "local_5c < puVar4" (identifier "local_5c") (< "<") (identifier "puVar4")) () ")"))) (<= "<=") (binary_expression "local_58 - uVar30" (identifier "local_58") (- "-") (identifier "uVar30")))) () ")")) (|| "||") (parenthesized_expression "(local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))" (( "(") (binary_expression "local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 < local_48" (identifier "local_58") (< "<") (identifier "local_48")) (|| "||") (binary_expression "local_58 - local_48 < (uint)(local_5c < local_4c)" (binary_expression "local_58 - local_48" (identifier "local_58") (- "-") (identifier "local_48")) (< "<") (call_expression "(uint)(local_5c < local_4c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < local_4c)" (( "(") (binary_expression "local_5c < local_4c" (identifier "local_5c") (< "<") (identifier "local_4c")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                uVar8 = *puVar22;\n                uVar14 = *puVar15;\n                uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);\n                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);\n                piVar26[1] = 1;\n                break;\n              }" ({ "{") (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" (identifier "uVar8") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "uVar14 = *puVar15;" (assignment_expression "uVar14 = *puVar15" (identifier "uVar14") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5);" (assignment_expression "uVar20 = dcgettext(0,\n                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",\n                                   5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" (identifier "FUN_00032ba0") (argument_list "(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,\n                             local_5c,local_58)" (( "(") (identifier "uVar20") (, ",") (identifier "uVar8") (, ",") (identifier "puVar4") (, ",") (identifier "uVar30") (, ",") (identifier "uVar35") (, ",") (identifier "uVar34") (, ",") (identifier "uVar14") (, ",") (identifier "local_4c") (, ",") (identifier "local_48") (, ",") (identifier "local_5c") (, ",") (identifier "local_58") () ")"))) (; ";")) (expression_statement "piVar26[1] = 1;" (assignment_expression "piVar26[1] = 1" (subscript_expression "piVar26[1]" (identifier "piVar26") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "piVar26 = piVar26 + 2;" (assignment_expression "piVar26 = piVar26 + 2" (identifier "piVar26") (= "=") (binary_expression "piVar26 + 2" (identifier "piVar26") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" (identifier "puVar15") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" (identifier "local_5c") (= "=") (identifier "uVar35")) (; ";")) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" (identifier "local_58") (= "=") (identifier "uVar34")) (; ";")) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" (identifier "local_4c") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" (identifier "local_48") (= "=") (identifier "uVar30")) (; ";")) (if_statement "if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;" (if "if") (parenthesized_expression "(piVar24 + uVar29 * 2 == piVar26)" (( "(") (binary_expression "piVar24 + uVar29 * 2 == piVar26" (binary_expression "piVar24 + uVar29 * 2" (identifier "piVar24") (+ "+") (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2"))) (== "==") (identifier "piVar26")) () ")")) (goto_statement "goto LAB_0002a3c8;" (goto "goto") (statement_identifier "LAB_0002a3c8") (; ";"))) (} "}"))) (expression_statement "local_48 = uVar30;" (assignment_expression "local_48 = uVar30" (identifier "local_48") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "local_4c = puVar4;" (assignment_expression "local_4c = puVar4" (identifier "local_4c") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_58 = uVar34;" (assignment_expression "local_58 = uVar34" (identifier "local_58") (= "=") (identifier "uVar34")) (; ";")) (expression_statement "local_5c = uVar35;" (assignment_expression "local_5c = uVar35" (identifier "local_5c") (= "=") (identifier "uVar35")) (; ";")) (expression_statement "puVar15 = puVar6;" (assignment_expression "puVar15 = puVar6" (identifier "puVar15") (= "=") (identifier "puVar6")) (; ";")) (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 + uVar29 * 2 != piVar26)" (( "(") (binary_expression "piVar24 + uVar29 * 2 != piVar26" (binary_expression "piVar24 + uVar29 * 2" (identifier "piVar24") (+ "+") (binary_expression "uVar29 * 2" (identifier "uVar29") (* "*") (number_literal "2"))) (!= "!=") (identifier "piVar26")) () ")")) (; ";")) (labeled_statement "LAB_0002a3c8:\n          qsort(piVar24,uVar29,8,FUN_0001df40);" (statement_identifier "LAB_0002a3c8") (: ":") (expression_statement "qsort(piVar24,uVar29,8,FUN_0001df40);" (call_expression "qsort(piVar24,uVar29,8,FUN_0001df40)" (identifier "qsort") (argument_list "(piVar24,uVar29,8,FUN_0001df40)" (( "(") (identifier "piVar24") (, ",") (identifier "uVar29") (, ",") (number_literal "8") (, ",") (identifier "FUN_0001df40") () ")"))) (; ";"))) (expression_statement "puVar15 = (undefined4 *)*piVar24;" (assignment_expression "puVar15 = (undefined4 *)*piVar24" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)*piVar24" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar24" (* "*") (identifier "piVar24")))) (; ";")) (expression_statement "uVar36 = 1;" (assignment_expression "uVar36 = 1" (identifier "uVar36") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" (identifier "uVar30") (= "=") (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" (identifier "uVar35") (= "=") (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar34 = uVar30;" (assignment_expression "uVar34 = uVar30" (identifier "uVar34") (= "=") (identifier "uVar30")) (; ";")) (expression_statement "uVar31 = uVar35;" (assignment_expression "uVar31 = uVar35" (identifier "uVar31") (= "=") (identifier "uVar35")) (; ";")) (do_statement "do {\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          } while (uVar36 != uVar29);" (do "do") (compound_statement "{\n            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);\n            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);\n            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;\n            uVar36 = uVar36 + 1;\n            uVar34 = uVar5;\n            uVar31 = uVar18;\n          }" ({ "{") (expression_statement "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);" (assignment_expression "uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x1c)" (* "*") (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[uVar36 * 2] + 0x1c)" (( "(") (binary_expression "piVar24[uVar36 * 2] + 0x1c" (subscript_expression "piVar24[uVar36 * 2]" (identifier "piVar24") ([ "[") (binary_expression "uVar36 * 2" (identifier "uVar36") (* "*") (number_literal "2")) (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);" (assignment_expression "uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(piVar24[uVar36 * 2] + 0x20)" (* "*") (cast_expression "(uint *)(piVar24[uVar36 * 2] + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar24[uVar36 * 2] + 0x20)" (( "(") (binary_expression "piVar24[uVar36 * 2] + 0x20" (subscript_expression "piVar24[uVar36 * 2]" (identifier "piVar24") ([ "[") (binary_expression "uVar36 * 2" (identifier "uVar36") (* "*") (number_literal "2")) (] "]")) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (if_statement "if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;" (if "if") (parenthesized_expression "(uVar34 == uVar5 && uVar31 == uVar18)" (( "(") (binary_expression "uVar34 == uVar5 && uVar31 == uVar18" (binary_expression "uVar34 == uVar5" (identifier "uVar34") (== "==") (identifier "uVar5")) (&& "&&") (binary_expression "uVar31 == uVar18" (identifier "uVar31") (== "==") (identifier "uVar18"))) () ")")) (goto_statement "goto LAB_0002a9b9;" (goto "goto") (statement_identifier "LAB_0002a9b9") (; ";"))) (expression_statement "uVar36 = uVar36 + 1;" (assignment_expression "uVar36 = uVar36 + 1" (identifier "uVar36") (= "=") (binary_expression "uVar36 + 1" (identifier "uVar36") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar34 = uVar5;" (assignment_expression "uVar34 = uVar5" (identifier "uVar34") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar31 = uVar18;" (assignment_expression "uVar31 = uVar18" (identifier "uVar31") (= "=") (identifier "uVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar36 != uVar29)" (( "(") (binary_expression "uVar36 != uVar29" (identifier "uVar36") (!= "!=") (identifier "uVar29")) () ")")) (; ";")) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" (identifier "bVar39") (= "=") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (identifier "uVar36") (= "=") (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" (identifier "uVar31") (= "=") (identifier "uVar36")) (; ";")) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (identifier "uVar34") (= "=") (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]"))) (>> ">>") (identifier "bVar39")) (| "|") (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]")) (<< "<<") (binary_expression "0x20 - bVar39" (number_literal "0x20") (- "-") (identifier "bVar39"))))) (; ";")) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" (if "if") (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" (( "(") (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" (( "(") (binary_expression "DAT_0009386c & 0x20" (identifier "DAT_0009386c") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            uVar31 = 0;\n            uVar34 = uVar36;\n          }" ({ "{") (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" (identifier "uVar31") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" (identifier "uVar34") (= "=") (identifier "uVar36")) (; ";")) (} "}"))) (expression_statement "local_6c = (int *)0x0;" (assignment_expression "local_6c = (int *)0x0" (identifier "local_6c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" (identifier "uVar36") (= "=") (binary_expression "uVar34 + (uVar35 - 1)" (identifier "uVar34") (+ "+") (parenthesized_expression "(uVar35 - 1)" (( "(") (binary_expression "uVar35 - 1" (identifier "uVar35") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (identifier "uVar34") (= "=") (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" (identifier "uVar31") (+ "+") (parenthesized_expression "(uVar30 - 1)" (( "(") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1")) () ")"))) (+ "+") (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar35 != 0)" (( "(") (binary_expression "uVar35 != 0" (identifier "uVar35") (!= "!=") (number_literal "0")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar34,uVar35 - 1)" (identifier "CARRY4") (argument_list "(uVar34,uVar35 - 1)" (( "(") (identifier "uVar34") (, ",") (binary_expression "uVar35 - 1" (identifier "uVar35") (- "-") (number_literal "1")) () ")")))))) (; ";")) (while_statement "while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)\n          {\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" (while "while") (parenthesized_expression "(local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)" (( "(") (comma_expression "local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_4c = puVar15" (identifier "local_4c") (= "=") (identifier "puVar15")) (, ",") (comma_expression "local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_50 = uVar30" (identifier "local_50") (= "=") (identifier "uVar30")) (, ",") (comma_expression "local_54 = uVar35, local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_54 = uVar35" (identifier "local_54") (= "=") (identifier "uVar35")) (, ",") (comma_expression "local_58 = uVar34,\n                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_58 = uVar34" (identifier "local_58") (= "=") (identifier "uVar34")) (, ",") (comma_expression "local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_5c = uVar36" (identifier "local_5c") (= "=") (identifier "uVar36")) (, ",") (comma_expression "local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29" (assignment_expression "local_6c = (int *)((int)local_6c + 1)" (identifier "local_6c") (= "=") (cast_expression "(int *)((int)local_6c + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_6c + 1)" (( "(") (binary_expression "(int)local_6c + 1" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "local_6c != (int *)uVar29" (identifier "local_6c") (!= "!=") (cast_expression "(int *)uVar29" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar29"))))))))) () ")")) (compound_statement "{\n            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];\n            uVar35 = puVar15[7];\n            uVar30 = puVar15[8];\n            bVar39 = (byte)DAT_0009386c & 0x1f;\n            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);\n            uVar31 = uVar36;\n            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;\n            if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }\n            uVar36 = uVar34 + (uVar35 - 1);\n            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);\n            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }\n          }" ({ "{") (expression_statement "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];" (assignment_expression "puVar15 = (undefined4 *)piVar24[(int)local_6c * 2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)piVar24[(int)local_6c * 2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar24[(int)local_6c * 2]" (identifier "piVar24") ([ "[") (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (* "*") (number_literal "2")) (] "]")))) (; ";")) (expression_statement "uVar35 = puVar15[7];" (assignment_expression "uVar35 = puVar15[7]" (identifier "uVar35") (= "=") (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "uVar30 = puVar15[8];" (assignment_expression "uVar30 = puVar15[8]" (identifier "uVar30") (= "=") (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "bVar39 = (byte)DAT_0009386c & 0x1f;" (assignment_expression "bVar39 = (byte)DAT_0009386c & 0x1f" (identifier "bVar39") (= "=") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);" (assignment_expression "uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (identifier "uVar36") (= "=") (binary_expression "(uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f)" (cast_expression "(uint)puVar15[0xc]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]"))) (>> ">>") (parenthesized_expression "((byte)DAT_0009386c & 0x1f)" (( "(") (binary_expression "(byte)DAT_0009386c & 0x1f" (cast_expression "(byte)DAT_0009386c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_0009386c")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar31 = uVar36;" (assignment_expression "uVar31 = uVar36" (identifier "uVar31") (= "=") (identifier "uVar36")) (; ";")) (expression_statement "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;" (assignment_expression "uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (identifier "uVar34") (= "=") (binary_expression "(uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39" (binary_expression "(uint)puVar15[0xb] >> bVar39" (cast_expression "(uint)puVar15[0xb]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]"))) (>> ">>") (identifier "bVar39")) (| "|") (binary_expression "puVar15[0xc] << 0x20 - bVar39" (subscript_expression "puVar15[0xc]" (identifier "puVar15") ([ "[") (number_literal "0xc") (] "]")) (<< "<<") (binary_expression "0x20 - bVar39" (number_literal "0x20") (- "-") (identifier "bVar39"))))) (; ";")) (if_statement "if ((DAT_0009386c & 0x20) != 0) {\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" (if "if") (parenthesized_expression "((DAT_0009386c & 0x20) != 0)" (( "(") (binary_expression "(DAT_0009386c & 0x20) != 0" (parenthesized_expression "(DAT_0009386c & 0x20)" (( "(") (binary_expression "DAT_0009386c & 0x20" (identifier "DAT_0009386c") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar31 = 0;\n              uVar34 = uVar36;\n            }" ({ "{") (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" (identifier "uVar31") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar34 = uVar36;" (assignment_expression "uVar34 = uVar36" (identifier "uVar34") (= "=") (identifier "uVar36")) (; ";")) (} "}"))) (expression_statement "uVar36 = uVar34 + (uVar35 - 1);" (assignment_expression "uVar36 = uVar34 + (uVar35 - 1)" (identifier "uVar36") (= "=") (binary_expression "uVar34 + (uVar35 - 1)" (identifier "uVar34") (+ "+") (parenthesized_expression "(uVar35 - 1)" (( "(") (binary_expression "uVar35 - 1" (identifier "uVar35") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);" (assignment_expression "uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (identifier "uVar34") (= "=") (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1)" (binary_expression "uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0)" (binary_expression "uVar31 + (uVar30 - 1)" (identifier "uVar31") (+ "+") (parenthesized_expression "(uVar30 - 1)" (( "(") (binary_expression "uVar30 - 1" (identifier "uVar30") (- "-") (number_literal "1")) () ")"))) (+ "+") (call_expression "(uint)(uVar35 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar35 != 0)" (( "(") (binary_expression "uVar35 != 0" (identifier "uVar35") (!= "!=") (number_literal "0")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar34,uVar35 - 1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar34,uVar35 - 1)" (identifier "CARRY4") (argument_list "(uVar34,uVar35 - 1)" (( "(") (identifier "uVar34") (, ",") (binary_expression "uVar35 - 1" (identifier "uVar35") (- "-") (number_literal "1")) () ")")))))) (; ";")) (if_statement "if ((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" (if "if") (parenthesized_expression "((piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))))" (( "(") (binary_expression "(piVar24[(int)local_6c * 2 + 1] == 0) &&\n               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" (parenthesized_expression "(piVar24[(int)local_6c * 2 + 1] == 0)" (( "(") (binary_expression "piVar24[(int)local_6c * 2 + 1] == 0" (subscript_expression "piVar24[(int)local_6c * 2 + 1]" (identifier "piVar24") ([ "[") (binary_expression "(int)local_6c * 2 + 1" (binary_expression "(int)local_6c * 2" (cast_expression "(int)local_6c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_6c")) (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))" (( "(") (parenthesized_expression "(uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)))" (( "(") (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||\n                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" (binary_expression "uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30" (binary_expression "uVar30 <= local_58" (identifier "uVar30") (<= "<=") (identifier "local_58")) (&& "&&") (binary_expression "(uint)(local_5c < uVar35) <= local_58 - uVar30" (call_expression "(uint)(local_5c < uVar35)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < uVar35)" (( "(") (binary_expression "local_5c < uVar35" (identifier "local_5c") (< "<") (identifier "uVar35")) () ")"))) (<= "<=") (binary_expression "local_58 - uVar30" (identifier "local_58") (- "-") (identifier "uVar30")))) (|| "||") (parenthesized_expression "(local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))" (( "(") (binary_expression "local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 < local_50" (identifier "local_58") (< "<") (identifier "local_50")) (|| "||") (binary_expression "local_58 - local_50 < (uint)(local_5c < local_54)" (binary_expression "local_58 - local_50" (identifier "local_58") (- "-") (identifier "local_50")) (< "<") (call_expression "(uint)(local_5c < local_54)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_5c < local_54)" (( "(") (binary_expression "local_5c < local_54" (identifier "local_5c") (< "<") (identifier "local_54")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              uVar8 = *puVar15;\n              uVar14 = *local_4c;\n              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);\n              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);\n            }" ({ "{") (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar14 = *local_4c;" (assignment_expression "uVar14 = *local_4c" (identifier "uVar14") (= "=") (pointer_expression "*local_4c" (* "*") (identifier "local_4c"))) (; ";")) (expression_statement "uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5);" (assignment_expression "uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",\n                                 5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58);" (call_expression "FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" (identifier "FUN_00032ba0") (argument_list "(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,\n                           local_5c,local_58)" (( "(") (identifier "uVar20") (, ",") (identifier "uVar8") (, ",") (identifier "uVar35") (, ",") (identifier "uVar30") (, ",") (identifier "uVar36") (, ",") (identifier "uVar34") (, ",") (identifier "uVar14") (, ",") (identifier "local_54") (, ",") (identifier "local_50") (, ",") (identifier "local_5c") (, ",") (identifier "local_58") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002a9b9:\n          free(piVar24);" (statement_identifier "LAB_0002a9b9") (: ":") (expression_statement "free(piVar24);" (call_expression "free(piVar24)" (identifier "free") (argument_list "(piVar24)" (( "(") (identifier "piVar24") () ")"))) (; ";"))) (for_statement "for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;\n              puVar22 = (undefined4 *)puVar22[2]) {\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" (for "for") (( "(") (assignment_expression "puVar22 = DAT_0009384c" (identifier "puVar22") (= "=") (identifier "DAT_0009384c")) (; ";") (comma_expression "puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0" (assignment_expression "puVar15 = DAT_0009383c" (identifier "puVar15") (= "=") (identifier "DAT_0009383c")) (, ",") (binary_expression "puVar22 != (undefined4 *)0x0" (identifier "puVar22") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";") (assignment_expression "puVar22 = (undefined4 *)puVar22[2]" (identifier "puVar22") (= "=") (cast_expression "(undefined4 *)puVar22[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar22[2]" (identifier "puVar22") ([ "[") (number_literal "2") (] "]")))) () ")") (compound_statement "{\n            if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }\n          }" ({ "{") (if_statement "if (puVar22[0xe] != 0) {\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" (if "if") (parenthesized_expression "(puVar22[0xe] != 0)" (( "(") (binary_expression "puVar22[0xe] != 0" (subscript_expression "puVar22[0xe]" (identifier "puVar22") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar8 = *puVar22;\n              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);\n              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);\n              FUN_00032ba0(uVar14,uVar8,iVar7);\n            }" ({ "{") (expression_statement "uVar8 = *puVar22;" (assignment_expression "uVar8 = *puVar22" (identifier "uVar8") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);" (assignment_expression "iVar7 = puVar22[9] - (puVar22[6] + puVar22[4])" (identifier "iVar7") (= "=") (binary_expression "puVar22[9] - (puVar22[6] + puVar22[4])" (subscript_expression "puVar22[9]" (identifier "puVar22") ([ "[") (number_literal "9") (] "]")) (- "-") (parenthesized_expression "(puVar22[6] + puVar22[4])" (( "(") (binary_expression "puVar22[6] + puVar22[4]" (subscript_expression "puVar22[6]" (identifier "puVar22") ([ "[") (number_literal "6") (] "]")) (+ "+") (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]"))) () ")")))) (; ";")) (expression_statement "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);" (assignment_expression "uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5)" (identifier "uVar14") (= "=") (call_expression "dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",\n                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,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",iVar7,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 "iVar7") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00032ba0(uVar14,uVar8,iVar7);" (call_expression "FUN_00032ba0(uVar14,uVar8,iVar7)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8,iVar7)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto joined_r0x000296eb;" (goto "goto") (statement_identifier "joined_r0x000296eb") (; ";")) (} "}"))) (} "}"))) (expression_statement "free(piVar24);" (call_expression "free(piVar24)" (identifier "free") (argument_list "(piVar24)" (( "(") (identifier "piVar24") () ")"))) (; ";")) (expression_statement "puVar15 = DAT_0009383c;" (assignment_expression "puVar15 = DAT_0009383c" (identifier "puVar15") (= "=") (identifier "DAT_0009383c")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "joined_r0x000296eb:\n  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" (statement_identifier "joined_r0x000296eb") (: ":") (for_statement "for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" (for "for") (( "(") (; ";") (binary_expression "puVar15 != (undefined4 *)0x0" (identifier "puVar15") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";") (assignment_expression "puVar15 = (undefined4 *)puVar15[1]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")))) () ")") (compound_statement "{\n    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);\n    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }\n  }" ({ "{") (expression_statement "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);" (assignment_expression "iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" (identifier "iVar7") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00093ca0,*puVar15,0,0,1)" (( "(") (identifier "DAT_00093ca0") (, ",") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" (if "if") (parenthesized_expression "((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)))" (( "(") (binary_expression "(iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))" (( "(") (binary_expression "1 < (byte)(*(char *)(iVar7 + 0xc) - 3U)" (number_literal "1") (< "<") (call_expression "(byte)(*(char *)(iVar7 + 0xc) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(iVar7 + 0xc) - 3U)" (( "(") (binary_expression "*(char *)(iVar7 + 0xc) - 3U" (pointer_expression "*(char *)(iVar7 + 0xc)" (* "*") (cast_expression "(char *)(iVar7 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (number_literal "3U")) () ")")))) () ")"))) () ")")) (compound_statement "{\n      uVar8 = *puVar15;\n      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);\n      FUN_00032ba0(uVar14,uVar8);\n    }" ({ "{") (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar7 = DAT_00093c1c;" (assignment_expression "iVar7 = DAT_00093c1c" (identifier "iVar7") (= "=") (identifier "DAT_00093c1c")) (; ";")) (if_statement "if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {\n    iVar7 = 1;\n  }" (if "if") (parenthesized_expression "(((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3))" (( "(") (binary_expression "((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)" (parenthesized_expression "((DAT_00093c80 & 0x43) != 2)" (( "(") (binary_expression "(DAT_00093c80 & 0x43) != 2" (parenthesized_expression "(DAT_00093c80 & 0x43)" (( "(") (binary_expression "DAT_00093c80 & 0x43" (identifier "DAT_00093c80") (& "&") (number_literal "0x43")) () ")")) (!= "!=") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "((DAT_00093c80 & 3) != 3)" (( "(") (binary_expression "(DAT_00093c80 & 3) != 3" (parenthesized_expression "(DAT_00093c80 & 3)" (( "(") (binary_expression "DAT_00093c80 & 3" (identifier "DAT_00093c80") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n    iVar7 = 1;\n  }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" (if "if") (parenthesized_expression "(((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0))" (( "(") (binary_expression "((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)" (parenthesized_expression "((DAT_00093c80 & 0x43) == 0x42)" (( "(") (binary_expression "(DAT_00093c80 & 0x43) == 0x42" (parenthesized_expression "(DAT_00093c80 & 0x43)" (( "(") (binary_expression "DAT_00093c80 & 0x43" (identifier "DAT_00093c80") (& "&") (number_literal "0x43")) () ")")) (== "==") (number_literal "0x42")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00093c1c == 0 && DAT_00093c18 == 0)" (( "(") (binary_expression "DAT_00093c1c == 0 && DAT_00093c18 == 0" (binary_expression "DAT_00093c1c == 0" (identifier "DAT_00093c1c") (== "==") (number_literal "0")) (&& "&&") (binary_expression "DAT_00093c18 == 0" (identifier "DAT_00093c18") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);\n    FUN_00032ba0(uVar8);\n  }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_000937f8 == (undefined *)0x0) {\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" (if "if") (parenthesized_expression "(DAT_000937f8 == (undefined *)0x0)" (( "(") (binary_expression "DAT_000937f8 == (undefined *)0x0" (identifier "DAT_000937f8") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    DAT_000937f8 = PTR_s_start_00093340;\n    iVar7 = 0;\n  }" ({ "{") (expression_statement "DAT_000937f8 = PTR_s_start_00093340;" (assignment_expression "DAT_000937f8 = PTR_s_start_00093340" (identifier "DAT_000937f8") (= "=") (identifier "PTR_s_start_00093340")) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);" (assignment_expression "iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" (identifier "iVar11") (= "=") (call_expression "bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1)" (identifier "bfd_link_hash_lookup") (argument_list "(DAT_00093ca0,DAT_000937f8,0,0,1)" (( "(") (identifier "DAT_00093ca0") (, ",") (identifier "DAT_000937f8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")")))) (; ";")) (if_statement "if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" (if "if") (parenthesized_expression "((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2))" (( "(") (binary_expression "(iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" (parenthesized_expression "(iVar11 != 0)" (( "(") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)" (( "(") (binary_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U) < 2" (call_expression "(byte)(*(char *)(iVar11 + 0xc) - 3U)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(*(char *)(iVar11 + 0xc) - 3U)" (( "(") (binary_expression "*(char *)(iVar11 + 0xc) - 3U" (pointer_expression "*(char *)(iVar11 + 0xc)" (* "*") (cast_expression "(char *)(iVar11 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (- "-") (number_literal "3U")) () ")"))) (< "<") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n    iVar10 = *(int *)(iVar11 + 0x14);\n    iVar25 = *(int *)(iVar10 + 0x54);\n    if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }\n  }" ({ "{") (expression_statement "iVar10 = *(int *)(iVar11 + 0x14);" (assignment_expression "iVar10 = *(int *)(iVar11 + 0x14)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(iVar11 + 0x14)" (* "*") (cast_expression "(int *)(iVar11 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x14)" (( "(") (binary_expression "iVar11 + 0x14" (identifier "iVar11") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar25 = *(int *)(iVar10 + 0x54);" (assignment_expression "iVar25 = *(int *)(iVar10 + 0x54)" (identifier "iVar25") (= "=") (pointer_expression "*(int *)(iVar10 + 0x54)" (* "*") (cast_expression "(int *)(iVar10 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x54)" (( "(") (binary_expression "iVar10 + 0x54" (identifier "iVar10") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (if_statement "if (iVar25 != 0) {\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" (if "if") (parenthesized_expression "(iVar25 != 0)" (( "(") (binary_expression "iVar25 != 0" (identifier "iVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);\n      iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));\n      if (iVar7 != 0) {\n        return;\n      }\n      pcVar12 = "%F%P: %s: can\'t set start address\n";\n      goto LAB_00029b59;\n    }" ({ "{") (expression_statement "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);" (assignment_expression "uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" (identifier "uVar29") (= "=") (binary_expression "*(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18)" (pointer_expression "*(uint *)(iVar10 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar10 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")")))) (+ "+") (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")")))))) (; ";")) (expression_statement "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));" (assignment_expression "iVar7 = bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" (identifier "iVar7") (= "=") (call_expression "bfd_set_start_address\n                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" (identifier "bfd_set_start_address") (argument_list "(DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),\n                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)))" (( "(") (identifier "DAT_00093cb4") (, ",") (binary_expression "uVar29 + *(uint *)(iVar25 + 0x1c)" (identifier "uVar29") (+ "+") (pointer_expression "*(uint *)(iVar25 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar25 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x1c)" (( "(") (binary_expression "iVar25 + 0x1c" (identifier "iVar25") (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +\n                         *(int *)(iVar25 + 0x20)" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +\n                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (binary_expression "*(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c)" (pointer_expression "*(int *)(iVar10 + 0x50)" (* "*") (cast_expression "(int *)(iVar10 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x50)" (( "(") (binary_expression "iVar10 + 0x50" (identifier "iVar10") (+ "+") (number_literal "0x50")) () ")")))) (+ "+") (pointer_expression "*(int *)(iVar11 + 0x1c)" (* "*") (cast_expression "(int *)(iVar11 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (identifier "CARRY4") (argument_list "(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18))" (( "(") (pointer_expression "*(uint *)(iVar10 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar10 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4c)" (( "(") (binary_expression "iVar10 + 0x4c" (identifier "iVar10") (+ "+") (number_literal "0x4c")) () ")")))) (, ",") (pointer_expression "*(uint *)(iVar11 + 0x18)" (* "*") (cast_expression "(uint *)(iVar11 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x18)" (( "(") (binary_expression "iVar11 + 0x18" (identifier "iVar11") (+ "+") (number_literal "0x18")) () ")")))) () ")"))))) (+ "+") (pointer_expression "*(int *)(iVar25 + 0x20)" (* "*") (cast_expression "(int *)(iVar25 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x20)" (( "(") (binary_expression "iVar25 + 0x20" (identifier "iVar25") (+ "+") (number_literal "0x20")) () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar29,*(uint *)(iVar25 + 0x1c))" (identifier "CARRY4") (argument_list "(uVar29,*(uint *)(iVar25 + 0x1c))" (( "(") (identifier "uVar29") (, ",") (pointer_expression "*(uint *)(iVar25 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar25 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar25 + 0x1c)" (( "(") (binary_expression "iVar25 + 0x1c" (identifier "iVar25") (+ "+") (number_literal "0x1c")) () ")")))) () ")"))))) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar12 = "%F%P: %s: can\'t set start address\n";" (assignment_expression "pcVar12 = "%F%P: %s: can\'t set start address\n"" (identifier "pcVar12") (= "=") (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_00029b59;" (goto "goto") (statement_identifier "LAB_00029b59") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);" (assignment_expression "uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0)" (identifier "uVar40") (= "=") (call_expression "bfd_scan_vma(DAT_000937f8,local_20,0)" (identifier "bfd_scan_vma") (argument_list "(DAT_000937f8,local_20,0)" (( "(") (identifier "DAT_000937f8") (, ",") (identifier "local_20") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*local_20[0] != '\0') {\n    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 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    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);\n    puVar17 = DAT_000937f8;\n    if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }\n    uVar8 = *(undefined4 *)(iVar11 + 0x1c);\n    uVar14 = *(undefined4 *)(iVar11 + 0x20);\n    uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }\n  }" ({ "{") (expression_statement "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);" (assignment_expression "iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" (identifier "iVar11") (= "=") (call_expression "bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334)" (identifier "bfd_get_section_by_name") (argument_list "(DAT_00093cb4,PTR_s__text_00093334)" (( "(") (identifier "DAT_00093cb4") (, ",") (identifier "PTR_s__text_00093334") () ")")))) (; ";")) (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" (identifier "puVar17") (= "=") (identifier "DAT_000937f8")) (; ";")) (if_statement "if (iVar11 == 0) {\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (iVar7 == 0) {\n        return;\n      }\n      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";\nLAB_00029b59:\n      puVar17 = DAT_000937f8;\n      uVar8 = dcgettext(0,pcVar12,5);\n      FUN_00032ba0(uVar8,puVar17);\n      return;\n    }" ({ "{") (if_statement "if (iVar7 == 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";" (assignment_expression "pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n"" (identifier "pcVar12") (= "=") (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_00029b59:\n      puVar17 = DAT_000937f8;" (statement_identifier "LAB_00029b59") (: ":") (expression_statement "puVar17 = DAT_000937f8;" (assignment_expression "puVar17 = DAT_000937f8" (identifier "puVar17") (= "=") (identifier "DAT_000937f8")) (; ";"))) (expression_statement "uVar8 = dcgettext(0,pcVar12,5);" (assignment_expression "uVar8 = dcgettext(0,pcVar12,5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,pcVar12,5)" (identifier "dcgettext") (argument_list "(0,pcVar12,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar12") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00032ba0(uVar8,puVar17);" (call_expression "FUN_00032ba0(uVar8,puVar17)" (identifier "FUN_00032ba0") (argument_list "(uVar8,puVar17)" (( "(") (identifier "uVar8") (, ",") (identifier "puVar17") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar8 = *(undefined4 *)(iVar11 + 0x1c);" (assignment_expression "uVar8 = *(undefined4 *)(iVar11 + 0x1c)" (identifier "uVar8") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(undefined4 *)(iVar11 + 0x20);" (assignment_expression "uVar14 = *(undefined4 *)(iVar11 + 0x20)" (identifier "uVar14") (= "=") (pointer_expression "*(undefined4 *)(iVar11 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x20)" (( "(") (binary_expression "iVar11 + 0x20" (identifier "iVar11") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" (identifier "uVar40") (= "=") (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" (* "*") (cast_expression "(undefined8 *)(iVar11 + 0x1c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar7 != 0) {\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);\n      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);\n      uVar40 = *(undefined8 *)(iVar11 + 0x1c);\n    }" ({ "{") (expression_statement "uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);" (assignment_expression "uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5)" (identifier "uVar20") (= "=") (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_00032ba0(uVar20,puVar17,uVar8,uVar14);" (call_expression "FUN_00032ba0(uVar20,puVar17,uVar8,uVar14)" (identifier "FUN_00032ba0") (argument_list "(uVar20,puVar17,uVar8,uVar14)" (( "(") (identifier "uVar20") (, ",") (identifier "puVar17") (, ",") (identifier "uVar8") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "uVar40 = *(undefined8 *)(iVar11 + 0x1c);" (assignment_expression "uVar40 = *(undefined8 *)(iVar11 + 0x1c)" (identifier "uVar40") (= "=") (pointer_expression "*(undefined8 *)(iVar11 + 0x1c)" (* "*") (cast_expression "(undefined8 *)(iVar11 + 0x1c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x1c)" (( "(") (binary_expression "iVar11 + 0x1c" (identifier "iVar11") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);" (assignment_expression "iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40)" (identifier "iVar7") (= "=") (call_expression "bfd_set_start_address(DAT_00093cb4,uVar40)" (identifier "bfd_set_start_address") (argument_list "(DAT_00093cb4,uVar40)" (( "(") (identifier "DAT_00093cb4") (, ",") (identifier "uVar40") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8);" (call_expression "FUN_00032ba0(uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar8)" (( "(") (identifier "uVar8") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (labeled_statement "LAB_00028dd0:\n  uVar8 = *puVar15;" (statement_identifier "LAB_00028dd0") (: ":") (expression_statement "uVar8 = *puVar15;" (assignment_expression "uVar8 = *puVar15" (identifier "uVar8") (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";"))) (expression_statement "uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);" (assignment_expression "uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5)" (identifier "uVar14") (= "=") (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_00032ba0(uVar14,uVar8);" (call_expression "FUN_00032ba0(uVar14,uVar8)" (identifier "FUN_00032ba0") (argument_list "(uVar14,uVar8)" (( "(") (identifier "uVar14") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)puVar15[2];" (assignment_expression "puVar15 = (undefined4 *)puVar15[2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")))) (; ";")) (goto_statement "goto joined_r0x00028c51;" (goto "goto") (statement_identifier "joined_r0x00028c51") (; ";")) (labeled_statement "code_r0x000290dc:\n  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" (statement_identifier "code_r0x000290dc") (: ":") (expression_statement "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);" (call_expression "(**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80)" (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 "(puVar15,&DAT_00093c80)" (( "(") (identifier "puVar15") (, ",") (pointer_expression "&DAT_00093c80" (& "&") (identifier "DAT_00093c80")) () ")"))) (; ";"))) (expression_statement "puVar15 = (undefined4 *)puVar15[3];" (assignment_expression "puVar15 = (undefined4 *)puVar15[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar15[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")))) (; ";")) (goto_statement "goto joined_r0x000290b4;" (goto "goto") (statement_identifier "joined_r0x000290b4") (; ";")) (labeled_statement "code_r0x00029557:\n  iVar7 = piVar24[6];" (statement_identifier "code_r0x00029557") (: ":") (expression_statement "iVar7 = piVar24[6];" (assignment_expression "iVar7 = piVar24[6]" (identifier "iVar7") (= "=") (subscript_expression "piVar24[6]" (identifier "piVar24") ([ "[") (number_literal "6") (] "]"))) (; ";"))) (expression_statement "uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);" (assignment_expression "uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5)" (identifier "uVar8") (= "=") (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_00032ba0(uVar8,iVar7,pbVar3);" (call_expression "FUN_00032ba0(uVar8,iVar7,pbVar3)" (identifier "FUN_00032ba0") (argument_list "(uVar8,iVar7,pbVar3)" (( "(") (identifier "uVar8") (, ",") (identifier "iVar7") (, ",") (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_r0x0002951b;" (goto "goto") (statement_identifier "joined_r0x0002951b") (; ";")) (} "}")))

/* 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 *pbVar1;
  char var_57;
  type_2 var_54;
  type_3 *var_5;
  type_4 *var_32;
  type_1 *var_71;
  type_5 *var_107;
  type_6 *var_104;
  type_2 *pbVar9;
  type_7 *pbVar10;
  type_1 *pbVar11;
  type_1 *pbVar12;
  type_8 *var_80;
  int var_146;
  type_9 **pplVar15;
  type_9 **pplVar16;
  type_10 *var_132;
  type_10 *var_134;
  type_11 *var_142;
  type_12 *puVar20;
  type_9 **var_21;
  type_13 *var_20;
  type_14 var_70;
  type_10 *puVar24;
  int var_8;
  char *var_46;
  size_t var_34;
  type_15 var_40;
  int var_45;
  char *var_48;
  type_16 *pbVar31;
  type_17 *version;
  type_18 *pbVar32;
  type_10 uVar33;
  type_9 *plVar34;
  type_8 *var_79;
  type_19 **pplVar36;
  type_20 *var_22;
  type_21 *var_96;
  int var_47;
  type_22 var_126;
  type_22 var_125;
  int *var_130;
  type_2 *var_55;
  type_23 *var_111;
  type_2 var_53;
  type_18 *pbVar45;
  type_9 **extraout_ECX;
  type_9 **var_113;
  type_9 **extraout_ECX_00;
  type_24 *var_26;
  type_25 *plVar48;
  type_9 *var_17;
  type_7 **var_102;
  type_8 *var_81;
  type_24 *var_83;
  type_9 *var_15;
  type_20 *var_23;
  type_5 *plVar55;
  type_24 *var_82;
  type_26 *var_63;
  type_9 *var_18;
  type_5 *var_105;
  type_9 *var_19;
  type_22 var_119;
  type_7 **var_99;
  type_22 var_118;
  type_22 var_129;
  int *var_139;
  type_10 uVar66;
  type_16 *orig;
  type_9 *var_24;
  type_2 *var_87;
  char *pcVar69;
  type_22 var_123;
  type_22 var_128;
  type_10 *var_100;
  bool var_88;
  bool bVar74;
  type_2 var_124;
  type_27 bVar76;
  type_28 uVar77;
  type_9 *var_25;
  void *local_64;
  type_22 var_136;
  type_22 var_135;
  type_1 *var_61;
  type_22 var_140;
  type_10 *var_138;
  type_22 var_137;
  type_22 var_108;
  type_22 var_68;
  type_10 uStack_14;
  
  var_124 = 0;
  uStack_14 = 0x28819;
  if (link_info.dynamic_list != (type_29 *)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_46 = (char *)var_9(0,"%F%P: can not create hash table: %E\n",5);
    var_10(var_46);
  }
  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;
  var_113 = file_chain.tail;
  var_17 = file_chain.head;
  if ((link_info._1_1_ & 2) != 0) {
    var_15 = stat_ptr->head;
    pplVar15 = stat_ptr->tail;
    var_8 = var_13();
    if (var_8 != 0) {
      var_46 = var_14();
      var_48 = (char *)var_9(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      var_10(var_48,var_46);
    }
    var_12(*pplVar15,OPEN_BFD_NORMAL);
    plVar48 = stat_ptr;
    if (stat_ptr->head != var_15) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar16 = plVar48->tail;
    var_15 = *pplVar15;
    plVar48->tail = pplVar15;
    *pplVar15 = (type_9 *)0x0;
    if (file_chain.head != var_17) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    pplVar15 = file_chain.tail;
    var_17 = *var_113;
    file_chain.tail = var_113;
    *var_113 = (type_9 *)0x0;
    if (input_file_chain.head != var_18) {
      var_16("../../ld/ldlang.c",0x1baf);
    }
    var_113 = input_file_chain.tail;
    var_18 = *var_21;
    input_file_chain.tail = var_21;
    *var_21 = (type_9 *)0x0;
    var_19 = file_chain.head;
    var_24 = input_file_chain.head;
    if (var_15 != (type_9 *)0x0) {
      for (; plugin_insert = (type_13 *)var_24,
          var_19 != (type_9 *)0x0; var_19 = (var_19->wild_statement).children.head)
      {
        if (((type_22)(var_19->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
          if (((type_22)(var_19->wild_statement).walk_wild_section_handler & 0x4000) == 0)
          goto LAB_00029ef1;
          break;
        }
        if (((var_19->reloc_statement).section != (type_24 *)0x0) &&
           (((var_19->reloc_statement).section)->lineno_count == 0)) {
          plugin_insert = (type_13 *)var_19;
        }
        var_24 = (type_9 *)plugin_insert;
      }
      var_19 = (type_9 *)plugin_insert;
      if ((type_9 *)plugin_insert == (type_9 *)0x0) {
        var_16("../../ld/ldlang.c",0x1c32);
        var_19 = (type_9 *)plugin_insert;
      }
LAB_00029ef1:
      plugin_insert = &var_19->input_statement;
      var_20 = plugin_insert;
      plVar48 = stat_ptr;
      *pplVar16 = (plugin_insert->header).next;
      (var_20->header).next = var_15;
      if (var_20 == (type_13 *)plVar48->tail) {
        plVar48->tail = pplVar16;
      }
      *var_113 = 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 = var_113;
      }
      if (var_20->filename == (char *)0x0) {
        *pplVar15 = file_chain.head;
        file_chain.head = var_17;
        if ((type_25 *)var_21 != &file_chain) {
          pplVar15 = file_chain.tail;
        }
      }
      else {
        *pplVar15 = var_20->next;
        var_20->next = var_17;
        if (var_21 != &var_20->next) {
          pplVar15 = file_chain.tail;
        }
      }
      file_chain.tail = pplVar15;
      var_113 = 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 = *var_113;
      file_chain.tail = var_113;
      *var_113 = (type_9 *)0x0;
      while (var_17 != (type_9 *)0x0) {
        var_22 = (type_20 *)((type_20 *)(var_17->input_statement).the_bfd)->lineno_count;
        var_23 = (type_20 *)(var_17->input_statement).the_bfd;
        if (var_22 != (type_20 *)0x0) {
          var_23 = var_22;
        }
        var_18 = file_chain.head;
        if (input_file_chain.head != (type_9 *)0x0) {
          var_19 = (type_9 *)0x0;
          var_25 = (type_9 *)0x0;
          var_15 = input_file_chain.head;
          do {
            while ((type_20 *)(var_15->wild_statement).section_list == var_23) {
              var_24 = (var_15->wild_statement).children.head;
              if (var_24 != (type_9 *)0x0) {
                plVar48 = &(var_24->wild_statement).children;
                var_18 = (var_24->wild_statement).children.head;
                goto LAB_0002a051;
              }
              var_15 = (type_9 *)(var_15->wild_statement).children.tail;
              var_25 = var_19;
              if (var_15 == (type_9 *)0x0) goto LAB_0002a010;
            }
            if (((type_20 *)(var_15->wild_statement).section_list != (type_20 *)0x0) &&
               ((var_15->wild_statement).children.head != (type_9 *)0x0)) {
              var_19 = var_15;
            }
            var_15 = (type_9 *)(var_15->wild_statement).children.tail;
          } while (var_15 != (type_9 *)0x0);
LAB_0002a010:
          if (var_25 != (type_9 *)0x0) {
            var_18 = var_25;
          }
        }
        plVar48 = (type_25 *)&(var_18->data_statement).output_section;
        for (var_18 = *(type_9 **)plVar48; var_18 != (type_9 *)0x0;
            var_18 = (var_18->wild_statement).children.head) {
          if ((((type_22)(var_18->wild_statement).walk_wild_section_handler & 0x4000) == 0) &&
             (((var_18->reloc_statement).section)->lineno_count == 0)) {
            var_18 = plVar48->head;
            break;
          }
          plVar48 = &(var_18->wild_statement).children;
        }
LAB_0002a051:
        var_25 = (type_9 *)&(var_17->data_statement).output_section;
        if (var_22 == (type_20 *)0x0) {
          plVar48->head = var_17;
          var_15 = (var_17->wild_statement).children.head;
          (var_17->data_statement).output_section = (type_24 *)var_18;
          var_17 = var_15;
        }
        else {
          var_26 = (var_17->data_statement).output_section;
          if (var_26 != (type_24 *)0x0) {
            var_23 = (type_20 *)var_26->prev->lineno_count;
            while (var_22 == var_23) {
              var_25 = (type_9 *)&var_26->field_0x18;
              var_26 = *(type_24 **)&var_26->field_0x18;
              if (var_26 == (type_24 *)0x0) break;
              var_23 = (type_20 *)var_26->prev->lineno_count;
            }
          }
          plVar48->head = var_17;
          var_17 = *(type_9 **)var_25;
          *(type_9 **)var_25 = var_18;
          if (var_22->used_by_bfd != (void *)0x0) {
            *(type_30 **)((int)var_22->used_by_bfd + 0x18) =
                 (type_30 *)((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_27 != (char *)0x0) {
      var_28(var_27);
    }
  }
  if (link_info.init_function != (char *)0x0) {
    var_28(link_info.init_function);
  }
  if (link_info.fini_function != (char *)0x0) {
    var_28(link_info.fini_function);
  }
  var_29();
  if ((config.map_file != (type_31 *)0x0) && (var_30 != (type_4 *)0x0)) {
    var_46 = (char *)var_9(0,
                                "\nAs-needed library included to satisfy reference by file (symbol)\n\n"
                                ,5);
    var_31(var_46);
    for (var_32 = var_30; var_32 != (type_4 *)0x0; var_32 = var_32->next) {
      var_31("%s",var_32->soname);
      var_34 = var_33(var_32->soname);
      if (0x1c < var_34) {
        var_35();
        var_34 = 0;
      }
      do {
        var_36();
        var_34 = var_34 + 1;
      } while (var_34 != 0x1e);
      if (var_32->ref != (type_1 *)0x0) {
        var_31("%pB ",var_32->ref);
      }
      var_31("(%pT)\n",var_32->name);
    }
  }
  var_37();
  for (var_17 = file_chain.head; var_17 != (type_9 *)0x0;
      var_17 = (var_17->wild_statement).children.head) {
LAB_00028a10:
    if (((type_22)(var_17->wild_statement).walk_wild_section_handler & 0x2000) != 0) {
LAB_00028ac0:
      var_17 = (var_17->wild_statement).children.head;
joined_r0x00029918:
      if (var_17 == (type_9 *)0x0) break;
      goto LAB_00028a10;
    }
    var_71 = (var_17->input_statement).the_bfd;
    var_8 = var_38
                       (var_71,link_info.output_bfd,command_line.accept_unknown_input_arch);
    pbVar1 = link_info.output_bfd;
    if (((link_info._0_1_ & 3) == 2) || ((link_info._3_1_ & 8) != 0)) {
      if (var_8 == 0) {
        if ((var_71->field_0x28 & 0x20) == 0) goto LAB_00028d68;
        pbVar32 = var_71->xvec;
        pbVar45 = (link_info.output_bfd)->xvec;
      }
      else {
        pbVar32 = var_71->xvec;
        pbVar45 = (link_info.output_bfd)->xvec;
        if ((pbVar32->flavour == pbVar45->flavour) || ((var_71->field_0x28 & 0x20) == 0))
        goto LAB_00028a63;
      }
      var_46 = pbVar45->name;
      var_48 = pbVar32->name;
      pcVar69 = (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(pcVar69,var_48,var_71,var_46,pbVar1);
      if (var_8 == 0) goto LAB_00028d68;
LAB_00028a63:
      if (var_71->section_count == 0) goto LAB_00028ac0;
      uVar66 = 0;
      if (command_line.warn_mismatch == 0) {
        uVar66 = var_39(ignore_bfd_errors);
      }
      var_40 = (*(link_info.output_bfd)->xvec->_bfd_merge_private_bfd_data)(var_71,&link_info);
      if (var_40 == 0) {
        if (command_line.warn_mismatch != 0) {
          var_46 = (char *)var_9(0,"%X%P: failed to merge target specific data of file %pB\n",5
                                     );
          var_10(var_46,var_71);
          goto LAB_00029904;
        }
LAB_00028aaa:
        var_39(uVar66);
        goto LAB_00028ac0;
      }
LAB_00029904:
      if (command_line.warn_mismatch == 0) goto LAB_00028aaa;
      var_17 = (var_17->wild_statement).children.head;
      goto joined_r0x00029918;
    }
    if (var_8 != 0) goto LAB_00028a63;
LAB_00028d68:
    if (command_line.warn_mismatch == 0) goto LAB_00028ac0;
    uVar66 = var_41(link_info.output_bfd);
    uVar33 = var_41(var_71);
    var_46 = (char *)var_9(0,
                                "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                                ,5);
    var_10(var_46,uVar33,var_71,uVar66);
  }
  if (command_line.version_exports_section != (char *)0x0) {
    orig = (type_16 *)0x0;
    var_17 = file_chain.head;
    while (var_17 != (type_9 *)0x0) {
      while (var_8 = var_42((var_17->wild_statement).section_list,".exports"),
            var_8 == 0) {
        var_17 = (var_17->wild_statement).children.head;
        if (var_17 == (type_9 *)0x0) goto LAB_00028bc4;
      }
      var_47 = *(int *)(var_8 + 0x2c);
      uVar66 = *(type_10 *)(var_8 + 0x30);
      var_46 = (char *)var_43(var_47);
      var_45 = var_44
                         ((var_17->wild_statement).section_list,var_8,var_46,0,0,var_47,uVar66);
      if (var_45 == 0) {
        var_48 = (char *)var_9(0,"%X%P: unable to read .exports section contents\n",5);
        var_10(var_48,var_8);
      }
      var_48 = var_46 + var_47;
      for (; var_46 < var_48; var_46 = var_46 + var_34 + 1) {
        orig = var_49(orig,var_46,(char *)0x0,0);
        var_34 = var_33(var_46);
      }
      var_17 = (var_17->wild_statement).children.head;
      *(type_22 *)(var_8 + 0x14) = *(type_22 *)(var_8 + 0x14) | 0x208000;
    }
LAB_00028bc4:
    pbVar31 = var_49((type_16 *)0x0,"*",(char *)0x0,0);
    version = (type_17 *)var_50(1,0x3c);
    (version->globals).list = orig;
    (version->locals).list = pbVar31;
    version->match = lang_vers_match;
    version->name_indx = 0xffffffff;
    var_51
              (command_line.version_exports_section,version,(type_32 *)0x0);
  }
  var_52();
  puVar20 = PTR__sch_istable_00092f98;
  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_1 *)0x0) {
      do {
        for (var_22 = var_61->sections; var_22 != (type_20 *)0x0; var_22 = var_22->next) {
          while( true ) {
            pbVar9 = (type_2 *)var_22->name;
            var_53 = *pbVar9;
            if (var_53 == 0) break;
            var_54 = puVar20[(type_22)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_0002a660;
              var_54 = puVar20[(type_22)var_53 * 2];
            }
            var_22 = var_22->next;
            if (var_22 == (type_20 *)0x0) goto LAB_0002a640;
          }
LAB_0002a660:
          var_34 = var_33((char *)pbVar9);
          var_46 = (char *)var_43(var_34 + 10);
          *var_46 = var_57;
          var_56(var_46 + (var_57 != '\0'),"__start_%s",pbVar9);
          var_58(var_46,var_22);
          var_46[1] = var_57;
          var_59(var_46 + (2 - (type_22)(var_57 == '\0')),"__stop",6);
          var_58(var_46 + 1,var_22);
          var_60(var_46);
        }
LAB_0002a640:
        var_61 = (var_61->link).next;
      } while (var_61 != (type_1 *)0x0);
    }
  }
  var_62(lang_mark_phase_enum);
  var_63 = lang_memory_region_list;
joined_r0x00028c51:
  if (var_63 != (type_33 *)0x0) {
    do {
      if (var_63->origin_exp != (type_23 *)0x0) {
        var_64(var_63->origin_exp);
        uVar33 = expld.result.value._4_4_;
        uVar66 = (type_10)expld.result.value;
        if (expld.result.valid_p == 0) {
          var_46 = (var_63->name_list).name;
          var_48 = (char *)var_9(0,"%F%P: invalid origin for memory region %s\n",5);
          var_10(var_48,var_46);
        }
        else {
          *(type_10 *)((int)&var_63->current + 4) = expld.result.value._4_4_;
          *(type_10 *)&var_63->origin = uVar66;
          *(type_10 *)((int)&var_63->origin + 4) = uVar33;
          *(type_10 *)&var_63->current = uVar66;
        }
      }
      if (var_63->length_exp != (type_23 *)0x0) {
        var_64(var_63->length_exp);
        uVar66 = (type_10)expld.result.value;
        if (expld.result.valid_p == 0) goto LAB_00028dd0;
        *(type_10 *)((int)&var_63->length + 4) = expld.result.value._4_4_;
        *(type_10 *)&var_63->length = uVar66;
      }
      var_63 = var_63->next;
      if (var_63 == (type_26 *)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_9 *)0x0; var_17 = (var_17->wild_statement).children.head
        ) {
      if (((type_22)(var_17->wild_statement).walk_wild_section_handler & 0x2000) == 0) {
        for (var_22 = ((var_17->input_statement).the_bfd)->sections; var_22 != (type_20 *)0x0
            ; var_22 = var_22->next) {
          if ((var_22->flags & 0x2000) == 0) {
            var_22->flags = var_22->flags & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((var_70 & 0x40) != 0) {
    (*(link_info.output_bfd)->xvec->_bfd_gc_sections)(link_info.output_bfd,&link_info);
  }
  var_71 = link_info.input_bfds;
  if ((link_info._6_1_ & 0x20) != 0) {
    for (; var_71 != (type_1 *)0x0; var_71 = (var_71->link).next) {
      var_8 = var_72(var_71,&link_info);
      if (var_8 == 0) {
        config.make_executable = 0;
      }
    }
  }
  var_73();
  var_18 = (type_9 *)0x0;
  var_74(statement_list.head);
  var_11 = var_11 + 1;
  var_75
            (statement_list.head,(char *)0x0,(type_21 *)0x0);
  var_15 = (type_9 *)0x0;
  var_17 = ((lang_output_section_statement.head)->header).next;
  if (var_17 == (type_9 *)0x0) {
LAB_00028f94:
    if (var_18 != (type_9 *)0x0) {
      (var_18->output_section_statement).constraint =
           -2 - (var_18->output_section_statement).constraint;
      while ((var_15 != var_18 &&
             (var_18 = (type_9 *)(var_18->reloc_statement).section,
             var_18 != (type_9 *)0x0))) {
        (var_18->output_section_statement).constraint =
             -2 - (var_18->output_section_statement).constraint;
      }
    }
  }
  else {
    var_19 = (type_9 *)0x0;
    var_24 = lang_output_section_statement.head;
    while (plVar34 = var_17, (var_17->header).type == var_76) {
      if ((var_15 != (type_9 *)0x0) &&
         (var_17 != (type_9 *)(var_15->wild_statement).section_list)) {
        var_16("../../ld/ldlang.c",0xea0);
        plVar34 = (var_24->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_9 *)0x0) goto LAB_00028f8a;
LAB_00028f8c:
      var_17 = (plVar34->header).next;
      var_19 = var_18;
      var_24 = plVar34;
      if (var_17 == (type_9 *)0x0) goto LAB_00028f94;
    }
    if ((var_17->header).type != var_77) {
LAB_00028f8a:
      var_18 = var_19;
      goto LAB_00028f8c;
    }
    var_79 = var_78((var_17->wild_statement).filename,0,0);
    if (var_79 != (type_21 *)0x0) {
      if ((var_17->wild_statement).filenames_sorted != 0) {
        do {
          var_79 = var_79->prev;
          if (var_79 == (type_8 *)0x0) goto LAB_00029066;
        } while (var_79->constraint < 0);
      }
      if (var_15 != (type_9 *)0x0) {
        var_81 = (var_19->output_section_statement).prev;
        var_80 = (var_15->output_section_statement).next;
        var_81->next = var_80;
        if (var_80 == (type_8 *)0x0) {
          lang_output_section_statement.tail = (type_9 **)&var_81->next;
          (var_15->wild_statement).section_list = (type_34 *)var_79->next;
          var_81 = var_79->next;
          if (var_81 == (type_8 *)0x0) goto LAB_00029bab;
LAB_0002996d:
          var_81->prev = (type_8 *)var_15;
        }
        else {
          var_80->prev = var_81;
          (var_15->wild_statement).section_list = (type_34 *)var_79->next;
          var_81 = var_79->next;
          if (var_81 != (type_8 *)0x0) goto LAB_0002996d;
LAB_00029bab:
          lang_output_section_statement.tail =
               (type_9 **)&(var_15->output_section_statement).next;
        }
        (var_19->output_section_statement).prev = var_79;
        var_83 = (type_24 *)0x0;
        var_26 = (type_24 *)0x0;
        var_79->next = (type_8 *)var_19;
        do {
          (var_19->output_section_statement).constraint =
               -2 - (var_19->output_section_statement).constraint;
          var_82 = (var_19->output_section_statement).type_20;
          if (((var_82 != (type_24 *)0x0) && (var_82->owner != (type_1 *)0x0)) &&
             (var_83 = var_82, var_26 == (type_24 *)0x0)) {
            var_26 = var_82;
          }
        } while ((var_15 != var_19) &&
                (var_19 = (type_9 *)(var_19->wild_statement).section_list,
                var_19 != (type_9 *)0x0));
        var_19 = (type_9 *)0x0;
        if (var_83 != (type_24 *)0x0) {
          var_82 = var_79->type_20;
          if (var_82 == (type_24 *)0x0) {
            var_19 = (type_9 *)var_79->prev;
            if (var_19 != (type_9 *)0x0) {
              do {
                if (((-1 < (var_19->output_section_statement).constraint) &&
                    (var_82 = (var_19->output_section_statement).type_20,
                    var_82 != (type_24 *)0x0)) && (var_82->owner != (type_1 *)0x0))
                goto LAB_000299ca;
                var_19 = (type_9 *)(var_19->wild_statement).keep_sections;
              } while (var_19 != (type_9 *)0x0);
              var_19 = (type_9 *)0x0;
            }
          }
          else {
LAB_000299ca:
            var_19 = (type_9 *)0x0;
            if (var_82 != var_83) {
              var_22 = var_26->prev;
              var_23 = var_83->next;
              if (var_22 == (type_20 *)0x0) {
                (link_info.output_bfd)->sections = var_23;
              }
              else {
                var_22->next = var_23;
                var_23 = var_83->next;
              }
              if (var_23 == (type_20 *)0x0) {
                (link_info.output_bfd)->section_last = var_22;
              }
              else {
                var_23->prev = var_22;
              }
              var_22 = var_82->next;
              var_83->next = var_22;
              if (var_22 == (type_20 *)0x0) {
                (link_info.output_bfd)->section_last = var_83;
              }
              else {
                var_22->prev = var_83;
              }
              var_26->prev = var_82;
              var_19 = (type_9 *)0x0;
              var_82->next = var_26;
            }
          }
        }
      }
      pplVar36 = var_84(var_79);
      var_17 = ((lang_output_section_statement.head)->header).next;
      ((lang_output_section_statement.head)->header).next = (((var_24->header).next)->header).next;
      var_18 = *pplVar36;
      (var_24->header).next = var_18;
      if (var_18 == (type_9 *)0x0) {
        statement_list.tail = (type_9 **)var_24;
      }
      *pplVar36 = var_17;
      var_15 = (type_9 *)0x0;
      var_18 = var_19;
      plVar34 = lang_output_section_statement.head;
      goto LAB_00028f8c;
    }
LAB_00029066:
    var_46 = (var_17->wild_statement).filename;
    var_48 = (char *)var_9(0,"%F%P: %s not found for insert\n",5);
    var_10(var_48,var_46);
  }
  var_22 = (type_20 *)(var_85 + 0x180);
  for (var_17 = file_chain.head; var_17 != (type_9 *)0x0;
      var_17 = (var_17->wild_statement).children.head) {
    var_23 = ((var_17->input_statement).the_bfd)->sections;
joined_r0x000290b4:
    if (var_23 != (type_20 *)0x0) {
      do {
        if (var_23->output_section == (type_20 *)0x0) {
          if (((type_22)(var_17->wild_statement).walk_wild_section_handler & 0x10) != 0)
          goto code_r0x000290dc;
          var_40 = var_86((type_24 *)var_23->flags);
          var_88 = false;
          bVar74 = var_40 == 0;
          if (bVar74) {
            pbVar9 = (type_2 *)var_23->name;
            var_8 = 7;
            var_55 = pbVar9;
            var_87 = (type_2 *)"COMMON";
            do {
              if (var_8 == 0) break;
              var_8 = var_8 + -1;
              var_88 = *var_55 < *var_87;
              bVar74 = *var_55 == *var_87;
              var_55 = var_55 + (type_22)var_124 * -2 + 1;
              var_87 = var_87 + (type_22)var_124 * -2 + 1;
            } while (bVar74);
            if ((!var_88 && !bVar74) == var_88) {
              if (((link_info._0_1_ & 3) != 2) || (command_line.force_common_definition != 0)) {
                if (var_89 == (type_21 *)0x0) {
                  var_89 = var_78(".bss",0,1);
                }
                var_90(&var_89->children,var_23,(type_35 *)0x0,
                                 var_89);
              }
            }
            else if (config.orphan_handling == var_91) {
              var_96 = var_78("/DISCARD/",0,1);
              if ((var_96->addr_tree == (type_36 *)0x0) &&
                 (((link_info._0_1_ & 3) == 2 || ((var_23->flags & 3) == 0)))) {
                var_111 = var_92(0);
                var_96->addr_tree = var_111;
              }
              var_90(&var_96->children,var_23,(type_35 *)0x0,var_96);
            }
            else {
              if (config.orphan_handling == var_93) {
                var_71 = var_23->owner;
                var_46 = (char *)var_9(0,
                                            "%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n"
                                            ,5);
                var_10(var_46,var_23,var_71);
              }
              if ((config.unique_orphan_sections == 0) &&
                 (var_40 = var_94(var_23,(type_21 *)0x0),
                 var_40 == 0)) {
                var_8 = 0;
              }
              else {
                var_8 = 0x17e;
              }
              var_96 = var_95(var_23,(char *)pbVar9,var_8);
              if (var_96 == (type_21 *)0x0) {
                var_96 = var_78((char *)pbVar9,var_8,1);
                if ((var_96->addr_tree == (type_36 *)0x0) &&
                   (((link_info._0_1_ & 3) == 2 || ((var_23->flags & 3) == 0)))) {
                  var_111 = var_92(0);
                  var_96->addr_tree = var_111;
                }
                var_90(&var_96->children,var_23,(type_35 *)0x0,var_96);
              }
              if (config.orphan_handling == var_97) {
                var_46 = var_96->name;
                var_71 = var_23->owner;
                var_48 = (char *)var_9(0,
                                            "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                            ,5);
                var_10(var_48,var_23,var_71,var_46);
              }
            }
          }
          else {
            var_23->output_section = var_22;
          }
        }
        var_23 = var_23->next;
        if (var_23 == (type_20 *)0x0) break;
      } while( true );
    }
  }
  var_53 = link_info._0_1_ & 3;
  var_99 = var_117;
  var_17 = lang_output_section_statement.head;
  var_71 = 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_42(link_info.output_bfd,".text");
    if (var_8 == 0) {
      var_53 = link_info._0_1_ & 3;
      var_99 = var_117;
      var_17 = lang_output_section_statement.head;
      var_71 = link_info.output_bfd;
    }
    else {
      var_53 = link_info._0_1_ & 3;
      if (config.text_read_only == 0) {
        *(type_22 *)(var_8 + 0x14) = *(type_22 *)(var_8 + 0x14) & 0xfffffff7;
        var_99 = var_117;
        var_17 = lang_output_section_statement.head;
        var_71 = link_info.output_bfd;
      }
      else {
        *(type_22 *)(var_8 + 0x14) = *(type_22 *)(var_8 + 0x14) | 8;
        var_99 = var_117;
        var_17 = lang_output_section_statement.head;
        var_71 = link_info.output_bfd;
      }
    }
  }
  for (; var_117 = var_99, link_info.output_bfd = var_71,
      var_17 != (type_9 *)0x0;
      var_17 = (type_9 *)(var_17->wild_statement).section_list) {
    var_79 = (var_17->output_section_statement).prev;
    if ((((var_79 != (type_8 *)0x0) &&
         ((var_17->wild_statement).walk_wild_section_handler == (type_37)0x0))
        && ((var_17->wild_statement).handler_data[2] == (type_34 *)0x0)) &&
       (((var_17->wild_statement).handler_data[1] == (type_34 *)0x0 &&
        ((type_33 *)(var_17->wild_statement).exclude_name_list == var_79->region))
       )) {
      (var_17->wild_statement).walk_wild_section_handler =
           (type_37)var_79->lma_region;
    }
    var_99 = var_117;
    var_71 = link_info.output_bfd;
  }
  if ((config.build_constructors != 0) && (var_98 != 0)) {
    var_102 = var_99 + var_98;
    do {
      while (pbVar10 = *var_99, (pbVar10->field_0xd & 8) == 0) {
        pbVar1 = (pbVar10->u).undef.abfd;
        var_100 = (type_10 *)(pbVar1->section_htab).count;
        if (((var_100 == (type_10 *)0x0) || ((type_1 *)var_100[0x2b] != var_71)) ||
           (var_8 = var_101(pbVar1->filename,(char *)*var_100), var_8 != 0)) {
          pbVar10->field_0xc = 1;
          (pbVar10->u).undef.abfd = (type_1 *)0x0;
          break;
        }
        var_99 = var_99 + 1;
        if (var_99 == var_102) goto LAB_00029327;
      }
      var_99 = var_99 + 1;
    } while (var_99 != var_102);
  }
LAB_00029327:
  if (var_53 != 2) {
    for (var_26 = (link_info.output_bfd)->sections; var_26 != (type_24 *)0x0;
        var_26 = var_26->next) {
      var_46 = var_26->name;
      var_34 = var_33(var_46);
      var_48 = (char *)var_43(var_34 + 10);
      var_56(var_48,".startof.%s",var_46);
      var_58(var_48,var_26);
      var_59(var_48 + 1,".size",5);
      var_58(var_48 + 1,var_26);
      var_60(var_48);
    }
  }
  var_103();
  plVar55 = (type_5 *)0x0;
  local_64 = (void *)var_43(0x28);
  var_108 = 10;
  for (var_104 = lang_phdr_list; var_104 != (type_6 *)0x0; var_104 = var_104->next) {
    var_25 = (type_9 *)0x0;
    for (var_17 = lang_output_section_statement.head; var_17 != (type_9 *)0x0;
        var_17 = (type_9 *)(var_17->wild_statement).section_list) {
      if (-1 < (var_17->output_section_statement).constraint) {
        var_105 = (var_17->output_section_statement).phdrs;
        if (var_105 == (type_5 *)0x0) {
          if ((((var_17->output_section_statement).sectype != var_106) &&
              ((var_17->output_section_statement).type_20 != (type_24 *)0x0)) &&
             (((((var_17->output_section_statement).type_20)->flags & 1) != 0 &&
              (var_18 = var_17, var_105 = plVar55, var_104->type != 3)))) {
            while( true ) {
              plVar55 = var_105;
              if (var_105 != (type_5 *)0x0) goto LAB_000293ea;
              var_18 = (type_9 *)(var_18->output_section_statement).next;
              if (var_18 == (type_9 *)0x0) break;
              var_105 = (var_18->output_section_statement).phdrs;
            }
            plVar55 = (type_5 *)0x0;
            var_46 = (char *)var_9(0,"%F%P: no sections assigned to phdrs\n",5);
            var_10(var_46);
          }
        }
        else {
          plVar55 = var_105;
          var_107 = (type_5 *)(var_17->wild_statement).children.tail;
          while (var_107 != (type_5 *)0x0) {
LAB_000293ea:
            var_8 = var_101(var_105->name,var_104->name);
            var_119 = var_108;
            if (var_8 == 0) {
              if (var_108 <= var_25) {
                var_119 = var_108 * 2;
                local_64 = (void *)var_109(local_64,var_108 << 3);
              }
              *(type_9 ***)((int)local_64 + (int)var_25 * 4) =
                   (var_17->wild_statement).children.tail;
              var_25 = (type_9 *)((int)var_25 + 1);
              var_105->used = 1;
            }
            var_105 = var_105->next;
            var_108 = var_119;
            var_107 = var_105;
          }
        }
      }
    }
    uVar66 = 0;
    if (var_104->flags != (type_23 *)0x0) {
      bVar76 = var_110(var_104->flags,0,"phdr flags");
      uVar66 = (type_10)bVar76;
    }
    var_111 = var_104->at;
    bVar76 = 0;
    if (var_111 != (type_23 *)0x0) {
      bVar76 = var_110(var_111,0,"phdr load address");
      var_111 = var_104->at;
    }
    var_8 = var_112(link_info.output_bfd,var_104->type,var_104->flags != (type_23 *)0x0,
                             uVar66,var_111 != (type_23 *)0x0,bVar76,var_104->filehdr,
                             var_104->phdrs,var_25,local_64);
    if (var_8 == 0) {
      var_46 = (char *)var_9(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      var_10(var_46);
    }
  }
  var_60(local_64);
  var_113 = extraout_ECX;
  for (var_17 = lang_output_section_statement.head; var_17 != (type_9 *)0x0;
      var_17 = (type_9 *)(var_17->wild_statement).section_list) {
    if ((-1 < (var_17->output_section_statement).constraint) &&
       (var_113 = (var_17->wild_statement).children.tail, var_113 != (type_9 **)0x0
       )) {
      var_26 = (type_24 *)(var_17->wild_statement).tree;
joined_r0x0002951b:
      if (var_26 != (type_24 *)0x0) {
        do {
          var_88 = false;
          bVar74 = var_26->index == 0;
          if (bVar74) {
            pbVar9 = (type_2 *)var_26->id;
            var_113 = (type_9 **)0x5;
            var_55 = pbVar9;
            var_87 = (type_2 *)0x3f35d;
            do {
              if (var_113 == (type_9 **)0x0) break;
              var_113 = (type_9 **)((int)var_113 + -1);
              var_88 = *var_55 < *var_87;
              bVar74 = *var_55 == *var_87;
              var_55 = var_55 + (type_22)var_124 * -2 + 1;
              var_87 = var_87 + (type_22)var_124 * -2 + 1;
            } while (bVar74);
            if ((!var_88 && !bVar74) != var_88) goto code_r0x00029557;
          }
          var_26 = (type_24 *)var_26->name;
          if (var_26 == (type_24 *)0x0) break;
        } while( true );
      }
    }
  }
  if (((link_info._3_1_ & 0x10) != 0) && ((link_info._0_1_ & 3) != 2)) {
    var_68 = 0;
    var_114
              (expld.dataseg.relro_start_stat,(type_38 *)&var_68,(type_15 *)var_113);
    if (var_68 == 0) {
      link_info._3_1_ = link_info._3_1_ & 0xef;
    }
  }
  var_115((type_15 *)0x0,
                     (type_22)(1 < (type_22)link_info.disable_target_specific_optimizations));
  var_116();
  var_71 = link_info.output_bfd;
  var_119 = var_133;
  if (var_98 != 0) {
    var_99 = var_117 + var_98;
    pbVar1 = (type_1 *)(var_85 + 0x180);
    var_102 = var_117;
    do {
      while (pbVar10 = *var_102, (*(type_39 *)&pbVar10->field_0xc & 0x8ff) == 3) {
        var_46 = (pbVar10->root).string;
        var_136._0_1_ = (type_2)var_119;
        if (*var_46 != '.') {
          var_57 = var_71->xvec->symbol_leading_char;
          var_22 = ((pbVar10->u).def.section)->output_section;
          (pbVar10->u).undef.abfd = (type_1 *)var_22;
          if (var_46[(var_57 != '\0') + 4] == 'o') {
            var_118 = *(type_22 *)((int)&var_22->size + 4);
            pcVar69 = (char *)(var_118 >> ((type_2)var_136 & 0x1f));
            var_46 = (char *)((type_22)var_22->size >> ((type_2)var_136 & 0x1f) |
                              var_118 << 0x20 - ((type_2)var_136 & 0x1f));
            var_48 = pcVar69;
            if ((var_119 & 0x20) != 0) {
              var_48 = (char *)0x0;
              var_46 = pcVar69;
            }
            (pbVar10->u).i.warning = var_46;
            *(char **)((int)&pbVar10->u + 0xc) = var_48;
          }
          break;
        }
        if (var_46[2] != 'i') break;
        pbVar11 = (pbVar10->u).undef.abfd;
        pbVar12 = pbVar11->plugin_dummy_bfd;
        pcVar69 = (char *)((type_22)pbVar12 >> ((type_2)var_136 & 0x1f));
        var_46 = (char *)(*(type_22 *)&pbVar11->field_0x2c >> ((type_2)var_136 & 0x1f) |
                          (int)pbVar12 << 0x20 - ((type_2)var_136 & 0x1f));
        var_48 = pcVar69;
        if ((var_119 & 0x20) != 0) {
          var_48 = (char *)0x0;
          var_46 = pcVar69;
        }
        var_102 = var_102 + 1;
        (pbVar10->u).i.warning = var_46;
        *(char **)((int)&pbVar10->u + 0xc) = var_48;
        (pbVar10->u).undef.abfd = pbVar1;
        if (var_99 == var_102) goto LAB_000296b8;
      }
      var_102 = var_102 + 1;
    } while (var_99 != var_102);
  }
LAB_000296b8:
  var_62(lang_final_phase_enum);
  var_120();
  var_121();
  var_142 = require_defined_symbol_list;
  if (command_line.check_section_addresses != '\0') {
    var_8 = var_122(link_info.output_bfd);
    var_123 = var_8 - 1U >> 5 & 1;
    var_124 = (type_2)(var_8 - 1U);
    var_119 = (var_123 ^ 1) << (var_124 & 0x1f);
    var_8 = var_119 * 2;
    var_118 = var_8 - 1;
    var_22 = (link_info.output_bfd)->sections;
    var_119 = (((var_123 << (var_124 & 0x1f)) << 1 | var_119 >> 0x1f) - 1) + (type_22)(var_8 != 0);
    if (var_22 != (type_20 *)0x0) {
      do {
        if ((var_22->flags & 1) != 0) {
          var_123 = (type_22)var_22->vma;
          var_125 = (type_22)var_22->size;
          var_126 = *(type_22 *)((int)&var_22->vma + 4);
          var_8 = *(int *)((int)&var_22->size + 4);
          var_129 = var_118 & var_123 + var_125;
          var_128 = var_119 & var_126 + var_8 + (type_22)var_127(var_123,var_125);
          if ((var_128 == 0 && var_129 == 0) ||
             (var_126 = var_119 & var_126,
             var_126 <= var_128 && (type_22)(var_129 < (var_118 & var_123)) <= var_128 - var_126)) {
            var_123 = (type_22)var_22->lma;
            var_126 = *(type_22 *)((int)&var_22->lma + 4);
            var_129 = var_118 & var_125 + var_123;
            var_125 = var_8 + var_126 + (type_22)var_127(var_125,var_123) & var_119;
            if ((var_125 == 0 && var_129 == 0) ||
               (var_126 = var_126 & var_119,
               var_126 <= var_125 && (type_22)(var_129 < (var_123 & var_118)) <= var_125 - var_126))
            goto LAB_0002a1a0;
            var_46 = var_22->name;
            var_48 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            var_46 = var_22->name;
            var_48 = "%X%P: section %s VMA wraps around address space\n";
          }
          var_48 = (char *)var_9(0,var_48,5);
          var_10(var_48,var_46);
        }
LAB_0002a1a0:
        var_22 = var_22->next;
      } while (var_22 != (type_20 *)0x0);
    }
    var_142 = require_defined_symbol_list;
    if (1 < (link_info.output_bfd)->section_count) {
      var_130 = (int *)var_43((link_info.output_bfd)->section_count << 3);
      var_119 = 0;
      var_22 = (link_info.output_bfd)->sections;
      if (var_22 != (type_20 *)0x0) {
        do {
          if ((((var_22->flags & 1) != 0) && ((var_22->flags & 0x402) != 0x400)) &&
             (*(int *)((int)&var_22->size + 4) != 0 || (int)var_22->size != 0)) {
            var_8 = var_119 * 2;
            var_119 = var_119 + 1;
            var_130[var_8] = (int)var_22;
            (var_130 + var_8)[1] = 0;
          }
          var_22 = var_22->next;
        } while (var_22 != (type_20 *)0x0);
        if (1 < var_119) {
          var_131(var_130,var_119,8,sort_sections_by_lma);
          var_138 = (type_10 *)0x0;
          var_137 = 0;
          var_136 = 0;
          var_135 = 0;
          var_139 = var_130;
          var_100 = (type_10 *)0x0;
          do {
            while (var_132 = (type_10 *)*var_139, puVar24 = var_100, var_123 = var_136,
                  var_125 = var_135, var_134 = var_138, var_118 = var_137,
                  (*(type_2 *)(var_132 + 5) & 2) != 0) {
              var_134 = (type_10 *)var_132[9];
              var_118 = var_132[10];
              var_124 = (type_2)var_133 & 0x1f;
              var_123 = (type_22)var_132[0xc] >> ((type_2)var_133 & 0x1f);
              var_126 = var_123;
              var_125 = (type_22)var_132[0xb] >> var_124 | var_132[0xc] << 0x20 - var_124;
              if ((var_133 & 0x20) != 0) {
                var_126 = 0;
                var_125 = var_123;
              }
              var_123 = var_125 + ((int)var_134 - 1U);
              var_125 = var_126 + (var_118 - 1) + (type_22)(var_134 != (type_10 *)0x0) +
                       (type_22)var_127(var_125,(int)var_134 - 1U);
              puVar24 = var_132;
              if (var_100 == (type_10 *)0x0) break;
              if ((var_118 <= var_135 && (type_22)(var_136 < var_134) <= var_135 - var_118) ||
                 (var_135 < var_137 || var_135 - var_137 < (type_22)(var_136 < var_138))) {
                uVar66 = *var_132;
                uVar33 = *var_100;
                var_46 = (char *)var_9(0,
                                            "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n"
                                            ,5);
                var_10(var_46,uVar66,var_134,var_118,var_123,var_125,uVar33,var_138,var_137,var_136,
                      var_135);
                var_139[1] = 1;
                break;
              }
              var_139 = var_139 + 2;
              var_100 = var_132;
              var_136 = var_123;
              var_135 = var_125;
              var_138 = var_134;
              var_137 = var_118;
              if (var_130 + var_119 * 2 == var_139) goto LAB_0002a3c8;
            }
            var_137 = var_118;
            var_138 = var_134;
            var_135 = var_125;
            var_136 = var_123;
            var_100 = puVar24;
            var_139 = var_139 + 2;
          } while (var_130 + var_119 * 2 != var_139);
LAB_0002a3c8:
          var_131(var_130,var_119,8,sort_sections_by_vma);
          var_100 = (type_10 *)*var_130;
          var_126 = 1;
          var_118 = var_100[8];
          var_71 = (type_1 *)var_100[7];
          var_123 = var_118;
          var_125 = (type_22)var_71;
          do {
            var_129 = *(type_22 *)(var_130[var_126 * 2] + 0x1c);
            var_128 = *(type_22 *)(var_130[var_126 * 2] + 0x20);
            if (var_123 == var_128 && var_125 == var_129) goto LAB_0002a9b9;
            var_126 = var_126 + 1;
            var_123 = var_128;
            var_125 = var_129;
          } while (var_126 != var_119);
          var_124 = (type_2)var_133 & 0x1f;
          var_126 = (type_22)var_100[0xc] >> ((type_2)var_133 & 0x1f);
          var_125 = var_126;
          var_123 = (type_22)var_100[0xb] >> var_124 | var_100[0xc] << 0x20 - var_124;
          if ((var_133 & 0x20) != 0) {
            var_125 = 0;
            var_123 = var_126;
          }
          var_25 = (type_9 *)0x0;
          var_126 = var_123 + ((int)var_71 - 1U);
          var_123 = var_125 + (var_118 - 1) + (type_22)(var_71 != (type_1 *)0x0) +
                   (type_22)var_127(var_123,(int)var_71 - 1U);
          while (var_138 = var_100, var_140 = var_118, var_61 = var_71, var_135 = var_123,
                var_136 = var_126, var_25 = (type_9 *)((int)var_25 + 1),
                var_25 != (type_9 *)var_119) {
            var_100 = (type_10 *)var_130[(int)var_25 * 2];
            var_71 = (type_1 *)var_100[7];
            var_118 = var_100[8];
            var_124 = (type_2)var_133 & 0x1f;
            var_126 = (type_22)var_100[0xc] >> ((type_2)var_133 & 0x1f);
            var_125 = var_126;
            var_123 = (type_22)var_100[0xb] >> var_124 | var_100[0xc] << 0x20 - var_124;
            if ((var_133 & 0x20) != 0) {
              var_125 = 0;
              var_123 = var_126;
            }
            var_126 = var_123 + ((int)var_71 - 1U);
            var_123 = var_125 + (var_118 - 1) + (type_22)(var_71 != (type_1 *)0x0) +
                     (type_22)var_127(var_123,(int)var_71 - 1U);
            if ((var_130[(int)var_25 * 2 + 1] == 0) &&
               ((var_118 <= var_135 && (type_22)(var_136 < var_71) <= var_135 - var_118 ||
                (var_135 < var_140 || var_135 - var_140 < (type_22)(var_136 < var_61))))) {
              uVar66 = *var_100;
              uVar33 = *var_138;
              var_46 = (char *)var_9(0,
                                          "%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n"
                                          ,5);
              var_10(var_46,uVar66,var_71,var_118,var_126,var_123,uVar33,var_61,var_140,var_136,
                    var_135);
            }
          }
LAB_0002a9b9:
          var_60(var_130);
          for (var_63 = lang_memory_region_list; var_142 = require_defined_symbol_list,
              var_63 != (type_33 *)0x0; var_63 = var_63->next) {
            if (var_63->had_full_message != 0) {
              var_46 = (var_63->name_list).name;
              var_8 = (int)var_63->current - ((int)var_63->length + (int)var_63->origin);
              var_48 = (char *)var_141(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_48,var_46,var_8);
            }
          }
          goto joined_r0x000296eb;
        }
      }
      var_60(var_130);
      var_142 = require_defined_symbol_list;
    }
  }
joined_r0x000296eb:
  for (; var_142 != (type_11 *)0x0; var_142 = var_142->next) {
    var_8 = var_143(link_info.hash,var_142->name,0,0,1);
    if ((var_8 == 0) || (1 < (type_2)(*(char *)(var_8 + 0xc) - 3U))) {
      var_46 = var_142->name;
      var_48 = (char *)var_9(0,"%X%P: required symbol `%s\' not defined\n",5);
      var_10(var_48,var_46);
    }
  }
  var_8 = var_144;
  if (((link_info._0_1_ & 0x43) != 2) && ((link_info._0_1_ & 3) != 3)) {
    var_8 = 1;
  }
  if (((link_info._0_1_ & 0x43) == 0x42) && (var_144 == 0 && var_145 == 0)) {
    var_46 = (char *)var_9(0,
                                "%F%P: gc-sections requires either an entry or an undefined symbol\n"
                                ,5);
    var_10(var_46);
  }
  if (entry_symbol.name == (char *)0x0) {
    entry_symbol.name = var_27;
    var_8 = 0;
  }
  var_47 = var_143(link_info.hash,entry_symbol.name,0,0,1);
  if ((var_47 != 0) && ((type_2)(*(char *)(var_47 + 0xc) - 3U) < 2)) {
    var_45 = *(int *)(var_47 + 0x14);
    var_146 = *(int *)(var_45 + 0x54);
    if (var_146 != 0) {
      var_119 = *(type_22 *)(var_45 + 0x4c) + *(type_22 *)(var_47 + 0x18);
      var_8 = var_147
                         (link_info.output_bfd,var_119 + *(type_22 *)(var_146 + 0x1c),
                          *(int *)(var_45 + 0x50) + *(int *)(var_47 + 0x1c) +
                          (type_22)var_127(*(type_22 *)(var_45 + 0x4c),*(type_22 *)(var_47 + 0x18)) +
                          *(int *)(var_146 + 0x20) + (type_22)var_127(var_119,*(type_22 *)(var_146 + 0x1c)));
      if (var_8 != 0) {
        return;
      }
      var_46 = "%F%P: %s: can\'t set start address\n";
      goto LAB_00029b59;
    }
  }
  uVar77 = var_148(entry_symbol.name,&var_68,0);
  if (*(char *)var_68 != '\0') {
    var_47 = var_42(link_info.output_bfd,entry_section);
    var_46 = entry_symbol.name;
    if (var_47 == 0) {
      if (var_8 == 0) {
        return;
      }
      var_46 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_00029b59:
      var_48 = entry_symbol.name;
      var_46 = (char *)var_9(0,var_46,5);
      var_10(var_46,var_48);
      return;
    }
    uVar66 = *(type_10 *)(var_47 + 0x1c);
    uVar33 = *(type_10 *)(var_47 + 0x20);
    uVar77 = *(type_28 *)(var_47 + 0x1c);
    if (var_8 != 0) {
      var_48 = (char *)var_9(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5
                                 );
      var_10(var_48,var_46,uVar66,uVar33);
      uVar77 = *(type_28 *)(var_47 + 0x1c);
    }
  }
  var_8 = var_147(link_info.output_bfd,uVar77);
  if (var_8 != 0) {
    return;
  }
  var_46 = (char *)var_9(0,"%F%P: can\'t set start address\n",5);
  var_10(var_46);
  return;
LAB_00028dd0:
  var_46 = (var_63->name_list).name;
  var_48 = (char *)var_9(0,"%F%P: invalid length for memory region %s\n",5);
  var_10(var_48,var_46);
  var_63 = var_63->next;
  goto joined_r0x00028c51;
code_r0x000290dc:
  (*((var_17->input_statement).the_bfd)->xvec->_bfd_link_just_syms)(var_23,&link_info);
  var_23 = var_23->next;
  goto joined_r0x000290b4;
code_r0x00029557:
  var_18 = (var_17->wild_statement).children.head;
  var_46 = (char *)var_9(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  var_10(var_46,var_18,pbVar9);
  var_26 = (type_24 *)var_26->name;
  var_113 = extraout_ECX_00;
  goto joined_r0x0002951b;
}


(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: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (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: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) 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: (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 (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))) (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: (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)))))) 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))) (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 (labeled_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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: (break_statement))) (goto_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 (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: (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 (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: (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)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator 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)))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (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 (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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 (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: (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: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (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) (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)))))) (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))) (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))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (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: (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))))) 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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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) (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: (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) (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: (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: (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: (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) (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) (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: (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: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (binary_expression left: (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: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (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))))) (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: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)))) right: (binary_expression left: (identifier) right: (binary_expression left: (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: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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))) (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: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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 (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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) right: (binary_expression left: (identifier) right: (identifier)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) right: (binary_expression left: (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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (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: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (number_literal) 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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (identifier))) consequence: (goto_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: (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)))) (labeled_statement label: (statement_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (number_literal) 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 (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (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: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (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))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (number_literal) 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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (identifier) right: (identifier)))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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) (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: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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 (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: (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: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (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) (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: (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)

{
  char cVar1;
  byte bVar2;
  byte *pbVar3;
  undefined4 *puVar4;
  uint uVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 uVar8;
  size_t sVar9;
  int iVar10;
  int iVar11;
  char *pcVar12;
  char *pcVar13;
  undefined4 uVar14;
  undefined4 *puVar15;
  int *piVar16;
  undefined *puVar17;
  uint uVar18;
  byte *pbVar19;
  undefined4 uVar20;
  byte bVar21;
  undefined4 *puVar22;
  int *piVar23;
  int *piVar24;
  int iVar25;
  int *piVar26;
  int *piVar27;
  int iVar28;
  uint uVar29;
  uint uVar30;
  uint uVar31;
  int *piVar32;
  byte *pbVar33;
  uint uVar34;
  uint uVar35;
  uint uVar36;
  bool bVar37;
  bool bVar38;
  byte bVar39;
  undefined8 uVar40;
  int *local_6c;
  void *local_64;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  undefined4 *local_4c;
  uint local_48;
  uint local_44;
  char *local_20 [3];
  undefined4 uStack_14;
  
  bVar39 = 0;
  uStack_14 = 0x28819;
  if (DAT_00093d14 != 0) {
    FUN_0001ea90();
  }
  DAT_000938b0 = DAT_00093df4;
  FUN_00021b90(FUN_00024b50,DAT_000938a8);
  FUN_0001f3d0();
  FUN_000314e0();
  for (puVar15 = DAT_000937f4; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
    FUN_0001e860();
  }
  iVar7 = bfd_section_already_linked_table_init();
  if (iVar7 == 0) {
    uVar8 = dcgettext(0,"%F%P: can not create hash table: %E\n",5);
    FUN_00032ba0(uVar8);
  }
  DAT_000937e0 = DAT_000937e0 + 1;
  DAT_000938b0 = DAT_00093df4;
  FUN_00026280();
  piVar27 = DAT_00093c28;
  piVar23 = DAT_00093c24;
  piVar26 = DAT_00093800;
  piVar24 = DAT_000937fc;
  if ((DAT_00093c81 & 2) != 0) {
    iVar7 = *(int *)PTR_DAT_00093338;
    piVar32 = *(int **)(PTR_DAT_00093338 + 4);
    iVar11 = FUN_00036670();
    if (iVar11 != 0) {
      uVar8 = FUN_00035fe0();
      uVar14 = dcgettext(0,"%F%P: %s: plugin reported error after all symbols read\n",5);
      FUN_00032ba0(uVar14,uVar8);
    }
    FUN_00026280();
    puVar17 = PTR_DAT_00093338;
    if (*(int *)PTR_DAT_00093338 != iVar7) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar16 = *(int **)(puVar17 + 4);
    iVar7 = *piVar32;
    *(int **)(puVar17 + 4) = piVar32;
    *piVar32 = 0;
    if (DAT_000937fc != piVar24) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar32 = DAT_00093800;
    piVar24 = (int *)*piVar26;
    DAT_00093800 = piVar26;
    *piVar26 = 0;
    if (DAT_00093c24 != piVar23) {
      FUN_00032bf0("../../ld/ldlang.c",0x1baf);
    }
    piVar23 = DAT_00093c28;
    iVar11 = *piVar27;
    DAT_00093c28 = piVar27;
    *piVar27 = 0;
    piVar26 = DAT_000937fc;
    piVar27 = DAT_00093c24;
    if (iVar7 != 0) {
      for (; DAT_00093840 = piVar27, piVar26 != (int *)0x0; piVar26 = (int *)piVar26[6]) {
        if ((*(byte *)((int)piVar26 + 0x25) & 0x20) != 0) {
          if ((*(byte *)((int)piVar26 + 0x25) & 0x40) == 0) goto LAB_00029ef1;
          break;
        }
        if ((piVar26[4] != 0) && (*(int *)(piVar26[4] + 0x8c) == 0)) {
          DAT_00093840 = piVar26;
        }
        piVar27 = DAT_00093840;
      }
      piVar26 = DAT_00093840;
      if (DAT_00093840 == (int *)0x0) {
        FUN_00032bf0("../../ld/ldlang.c",0x1c32);
        piVar26 = DAT_00093840;
      }
LAB_00029ef1:
      DAT_00093840 = piVar26;
      piVar26 = DAT_00093840;
      puVar17 = PTR_DAT_00093338;
      *piVar16 = *DAT_00093840;
      *piVar26 = iVar7;
      if (piVar26 == *(int **)(puVar17 + 4)) {
        *(int **)(puVar17 + 4) = piVar16;
      }
      *piVar23 = piVar26[7];
      piVar26[7] = iVar11;
      piVar27 = DAT_00093800;
      if (DAT_00093c28 == piVar26 + 7) {
        DAT_00093c28 = piVar23;
      }
      if (piVar26[2] == 0) {
        *piVar32 = (int)DAT_000937fc;
        DAT_000937fc = piVar24;
        if ((int **)piVar27 != &DAT_000937fc) {
          piVar32 = DAT_00093800;
        }
      }
      else {
        *piVar32 = piVar26[6];
        piVar26[6] = (int)piVar24;
        if (piVar27 != piVar26 + 6) {
          piVar32 = DAT_00093800;
        }
      }
      DAT_00093800 = piVar32;
      piVar26 = DAT_00093800;
      piVar24 = DAT_000937fc;
      DAT_000937e0 = DAT_000937e0 + 1;
      FUN_00026280();
      if (DAT_000937fc != piVar24) {
        FUN_00032bf0("../../ld/ldlang.c",0x1baf);
      }
      iVar7 = *piVar26;
      DAT_00093800 = piVar26;
      *piVar26 = 0;
      while (iVar7 != 0) {
        iVar11 = *(int *)(*(int *)(iVar7 + 0x10) + 0x8c);
        iVar10 = *(int *)(iVar7 + 0x10);
        if (iVar11 != 0) {
          iVar10 = iVar11;
        }
        piVar24 = DAT_000937fc;
        if (DAT_00093c24 != (int *)0x0) {
          piVar23 = (int *)0x0;
          local_6c = (int *)0x0;
          piVar26 = DAT_00093c24;
          do {
            while (piVar26[4] == iVar10) {
              iVar25 = piVar26[6];
              if (iVar25 != 0) {
                piVar24 = (int *)(iVar25 + 0x18);
                iVar10 = *(int *)(iVar25 + 0x18);
                goto LAB_0002a051;
              }
              piVar26 = (int *)piVar26[7];
              local_6c = piVar23;
              if (piVar26 == (int *)0x0) goto LAB_0002a010;
            }
            if ((piVar26[4] != 0) && (piVar26[6] != 0)) {
              piVar23 = piVar26;
            }
            piVar26 = (int *)piVar26[7];
          } while (piVar26 != (int *)0x0);
LAB_0002a010:
          if (local_6c != (int *)0x0) {
            piVar24 = local_6c;
          }
        }
        piVar24 = piVar24 + 6;
        for (iVar10 = *piVar24; iVar10 != 0; iVar10 = *(int *)(iVar10 + 0x18)) {
          if (((*(byte *)(iVar10 + 0x25) & 0x40) == 0) &&
             (*(int *)(*(int *)(iVar10 + 0x10) + 0x8c) == 0)) {
            iVar10 = *piVar24;
            break;
          }
          piVar24 = (int *)(iVar10 + 0x18);
        }
LAB_0002a051:
        local_6c = (int *)(iVar7 + 0x18);
        if (iVar11 == 0) {
          *piVar24 = iVar7;
          iVar11 = *(int *)(iVar7 + 0x18);
          *(int *)(iVar7 + 0x18) = iVar10;
          iVar7 = iVar11;
        }
        else {
          iVar25 = *(int *)(iVar7 + 0x18);
          if (iVar25 != 0) {
            iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);
            while (iVar11 == iVar28) {
              local_6c = (int *)(iVar25 + 0x18);
              iVar25 = *(int *)(iVar25 + 0x18);
              if (iVar25 == 0) break;
              iVar28 = *(int *)(*(int *)(iVar25 + 0x10) + 0x8c);
            }
          }
          *piVar24 = iVar7;
          iVar7 = *local_6c;
          *local_6c = iVar10;
          if (*(int *)(iVar11 + 0xa4) != 0) {
            *(int **)(*(int *)(iVar11 + 0xa4) + 0x18) = local_6c + -6;
          }
        }
      }
    }
  }
  if (DAT_00093cc8 != (undefined4 *)0x0) {
    FUN_00032bf0("../../ld/ldlang.c",0x1c67);
  }
  DAT_00093cc8 = &DAT_000937f4;
  if (DAT_000937f8 == (undefined *)0x0) {
    DAT_00093cc8 = DAT_000937f4;
    if (PTR_s_start_00093340 != (undefined *)0x0) {
      FUN_00021990();
    }
  }
  if (DAT_00093cd0 != 0) {
    FUN_00021990();
  }
  if (DAT_00093cd4 != 0) {
    FUN_00021990();
  }
  FUN_000313f0();
  if ((DAT_00093dd0 != 0) && (DAT_00093870 != (undefined4 *)0x0)) {
    uVar8 = dcgettext(0,"\nAs-needed library included to satisfy reference by file (symbol)\n\n",5);
    FUN_00032c30(uVar8);
    for (puVar15 = DAT_00093870; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
      FUN_00032c30(&DAT_0004de8a,puVar15[1]);
      sVar9 = strlen((char *)puVar15[1]);
      if (0x1c < sVar9) {
        FUN_00031ce0();
        sVar9 = 0;
      }
      do {
        FUN_00031cb0();
        sVar9 = sVar9 + 1;
      } while (sVar9 != 0x1e);
      if (puVar15[2] != 0) {
        FUN_00032c30(&DAT_0004e11a,puVar15[2]);
      }
      FUN_00032c30("(%pT)\n",puVar15[3]);
    }
  }
  bfd_section_already_linked_table_free();
  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
LAB_00028a10:
    if ((*(byte *)((int)piVar24 + 0x25) & 0x20) != 0) {
LAB_00028ac0:
      piVar24 = (int *)piVar24[6];
joined_r0x00029918:
      if (piVar24 == (int *)0x0) break;
      goto LAB_00028a10;
    }
    iVar7 = piVar24[4];
    iVar10 = bfd_arch_get_compatible(iVar7,DAT_00093cb4,DAT_00093d3c);
    iVar11 = DAT_00093cb4;
    if (((DAT_00093c80 & 3) == 2) || ((DAT_00093c82._1_1_ & 8) != 0)) {
      if (iVar10 == 0) {
        if ((*(byte *)(iVar7 + 0x28) & 0x20) == 0) goto LAB_00028d68;
        puVar15 = *(undefined4 **)(iVar7 + 4);
        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);
      }
      else {
        puVar15 = *(undefined4 **)(iVar7 + 4);
        puVar22 = *(undefined4 **)(DAT_00093cb4 + 4);
        if ((puVar15[1] == puVar22[1]) || ((*(byte *)(iVar7 + 0x28) & 0x20) == 0))
        goto LAB_00028a63;
      }
      uVar8 = *puVar22;
      uVar14 = *puVar15;
      uVar20 = dcgettext(0,
                         "%F%P: relocatable linking with relocations from format %s (%pB) to format %s (%pB) is not supported\n"
                         ,5);
      FUN_00032ba0(uVar20,uVar14,iVar7,uVar8,iVar11);
      if (iVar10 == 0) goto LAB_00028d68;
LAB_00028a63:
      if (*(int *)(iVar7 + 0x68) == 0) goto LAB_00028ac0;
      uVar8 = 0;
      if (DAT_00093d30 == 0) {
        uVar8 = bfd_set_error_handler(FUN_0001df90);
      }
      iVar11 = (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0xac))(iVar7,&DAT_00093c80);
      if (iVar11 == 0) {
        if (DAT_00093d30 != 0) {
          uVar14 = dcgettext(0,"%X%P: failed to merge target specific data of file %pB\n",5);
          FUN_00032ba0(uVar14,iVar7);
          goto LAB_00029904;
        }
LAB_00028aaa:
        bfd_set_error_handler(uVar8);
        goto LAB_00028ac0;
      }
LAB_00029904:
      if (DAT_00093d30 == 0) goto LAB_00028aaa;
      piVar24 = (int *)piVar24[6];
      goto joined_r0x00029918;
    }
    if (iVar10 != 0) goto LAB_00028a63;
LAB_00028d68:
    if (DAT_00093d30 == 0) goto LAB_00028ac0;
    uVar8 = bfd_printable_name(DAT_00093cb4);
    uVar14 = bfd_printable_name(iVar7);
    uVar20 = dcgettext(0,
                       "%X%P: %s architecture of input file `%pB\' is incompatible with %s output\n"
                       ,5);
    FUN_00032ba0(uVar20,uVar14,iVar7,uVar8);
  }
  if (DAT_00093d74 != 0) {
    uVar8 = 0;
    piVar24 = DAT_000937fc;
    while (piVar24 != (int *)0x0) {
      while (iVar7 = bfd_get_section_by_name(piVar24[4],".exports"), iVar7 == 0) {
        piVar24 = (int *)piVar24[6];
        if (piVar24 == (int *)0x0) goto LAB_00028bc4;
      }
      iVar11 = *(int *)(iVar7 + 0x2c);
      uVar14 = *(undefined4 *)(iVar7 + 0x30);
      pcVar12 = (char *)xmalloc(iVar11);
      iVar10 = bfd_get_section_contents(piVar24[4],iVar7,pcVar12,0,0,iVar11,uVar14);
      if (iVar10 == 0) {
        uVar14 = dcgettext(0,"%X%P: unable to read .exports section contents\n",5);
        FUN_00032ba0(uVar14,iVar7);
      }
      pcVar13 = pcVar12 + iVar11;
      for (; pcVar12 < pcVar13; pcVar12 = pcVar12 + sVar9 + 1) {
        uVar8 = FUN_00028150(uVar8,pcVar12,0,0);
        sVar9 = strlen(pcVar12);
      }
      piVar24 = (int *)piVar24[6];
      *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 0x208000;
    }
LAB_00028bc4:
    uVar14 = FUN_00028150(0,&DAT_0004dff8,0,0);
    iVar7 = xcalloc(1,0x3c);
    *(undefined4 *)(iVar7 + 0xc) = uVar8;
    *(undefined4 *)(iVar7 + 0x1c) = uVar14;
    *(code **)(iVar7 + 0x38) = FUN_0001ecc0;
    *(undefined4 *)(iVar7 + 0x30) = 0xffffffff;
    FUN_000283d0(DAT_00093d74,iVar7,0);
  }
  FUN_0002ba20();
  puVar17 = PTR__sch_istable_00092f98;
  if (DAT_00093d8c != 0) {
    local_54 = DAT_00093cbc;
    cVar1 = *(char *)(*(int *)(DAT_00093cb4 + 4) + 0x18);
    if (DAT_00093cbc != 0) {
      do {
        for (puVar15 = *(undefined4 **)(local_54 + 0x60); puVar15 != (undefined4 *)0x0;
            puVar15 = (undefined4 *)puVar15[3]) {
          while( true ) {
            pbVar3 = (byte *)*puVar15;
            bVar21 = *pbVar3;
            if (bVar21 == 0) break;
            bVar2 = puVar17[(uint)bVar21 * 2];
            pbVar19 = pbVar3;
            while (((bVar2 & 0x8c) != 0 || (bVar21 == 0x5f))) {
              pbVar19 = pbVar19 + 1;
              bVar21 = *pbVar19;
              if (bVar21 == 0) goto LAB_0002a660;
              bVar2 = puVar17[(uint)bVar21 * 2];
            }
            puVar15 = (undefined4 *)puVar15[3];
            if (puVar15 == (undefined4 *)0x0) goto LAB_0002a640;
          }
LAB_0002a660:
          sVar9 = strlen((char *)pbVar3);
          pcVar12 = (char *)xmalloc(sVar9 + 10);
          *pcVar12 = cVar1;
          sprintf(pcVar12 + (cVar1 != '\0'),"__start_%s",pbVar3);
          FUN_0001ec30();
          pcVar12[1] = cVar1;
          builtin_strncpy(pcVar12 + (2 - (uint)(cVar1 == '\0')),"__stop",6);
          FUN_0001ec30();
          free(pcVar12);
        }
LAB_0002a640:
        local_54 = *(int *)(local_54 + 0x9c);
      } while (local_54 != 0);
    }
  }
  FUN_00025190(1);
  puVar15 = DAT_0009384c;
joined_r0x00028c51:
  if (puVar15 != (undefined4 *)0x0) {
    do {
      if (puVar15[3] != 0) {
        FUN_00030910(puVar15[3]);
        uVar14 = DAT_00093e38;
        uVar8 = DAT_00093e34;
        if (DAT_00093e44 == 0) {
          uVar8 = *puVar15;
          uVar14 = dcgettext(0,"%F%P: invalid origin for memory region %s\n",5);
          FUN_00032ba0(uVar14,uVar8);
        }
        else {
          puVar15[10] = DAT_00093e38;
          puVar15[4] = uVar8;
          puVar15[5] = uVar14;
          puVar15[9] = uVar8;
        }
      }
      if (puVar15[8] != 0) {
        FUN_00030910(puVar15[8]);
        uVar8 = DAT_00093e34;
        if (DAT_00093e44 == 0) goto LAB_00028dd0;
        puVar15[7] = DAT_00093e38;
        puVar15[6] = uVar8;
      }
      puVar15 = (undefined4 *)puVar15[2];
      if (puVar15 == (undefined4 *)0x0) break;
    } while( true );
  }
  DAT_00093e20 = 0;
  if (((DAT_00093c87 & 0x20) == 0) && (((DAT_00093c80 & 3) != 2 || (DAT_00093d20 != 0)))) {
    if (DAT_00093dac == 0) {
      bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,0);
    }
    else {
      if (DAT_00093dac == 2) {
        local_20[0] = (char *)0x4;
        do {
          bfd_link_hash_traverse(DAT_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,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_00093ca0,FUN_00020720,local_20);
    }
  }
  FUN_00025db0();
  bVar21 = DAT_00093c80;
  piVar24 = DAT_000937fc;
  if ((DAT_00093c80 & 3) == 2) {
    for (; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
      if ((*(byte *)((int)piVar24 + 0x25) & 0x20) == 0) {
        for (iVar7 = *(int *)(piVar24[4] + 0x60); iVar7 != 0; iVar7 = *(int *)(iVar7 + 0xc)) {
          if ((*(uint *)(iVar7 + 0x14) & 0x2000) == 0) {
            *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xffff7fff;
          }
        }
      }
    }
  }
  if ((bVar21 & 0x40) != 0) {
    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x184))(DAT_00093cb4,&DAT_00093c80);
  }
  iVar7 = DAT_00093cbc;
  if ((DAT_00093c86 & 0x20) != 0) {
    for (; iVar7 != 0; iVar7 = *(int *)(iVar7 + 0x9c)) {
      iVar11 = bfd_link_check_relocs(iVar7,&DAT_00093c80);
      if (iVar11 == 0) {
        DAT_00093d84 = 0;
      }
    }
  }
  FUN_00031410();
  piVar26 = (int *)0x0;
  FUN_0001e100();
  DAT_000937e0 = DAT_000937e0 + 1;
  FUN_00025ed0();
  piVar23 = (int *)0x0;
  piVar24 = (int *)*DAT_00093c40;
  if (piVar24 == (int *)0x0) {
LAB_00028f94:
    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;
    piVar32 = DAT_00093c40;
    while (piVar16 = piVar24, piVar24[1] == 0) {
      if ((piVar23 != (int *)0x0) && (piVar24 != (int *)piVar23[4])) {
        FUN_00032bf0("../../ld/ldlang.c",0xea0);
        piVar16 = (int *)*piVar32;
      }
      piVar24[0x12] = -2 - piVar24[0x12];
      piVar23 = piVar24;
      piVar26 = piVar24;
      if (piVar27 != (int *)0x0) goto LAB_00028f8a;
LAB_00028f8c:
      piVar24 = (int *)*piVar16;
      piVar27 = piVar26;
      piVar32 = piVar16;
      if (piVar24 == (int *)0x0) goto LAB_00028f94;
    }
    if (piVar24[1] != 0xe) {
LAB_00028f8a:
      piVar26 = piVar27;
      goto LAB_00028f8c;
    }
    iVar7 = FUN_00023550(piVar24[2],0,0);
    if (iVar7 != 0) {
      if (piVar24[3] != 0) {
        do {
          iVar7 = *(int *)(iVar7 + 0x14);
          if (iVar7 == 0) goto LAB_00029066;
        } while (*(int *)(iVar7 + 0x48) < 0);
      }
      if (piVar23 != (int *)0x0) {
        iVar11 = piVar27[5];
        iVar10 = piVar23[4];
        *(int *)(iVar11 + 0x10) = iVar10;
        if (iVar10 == 0) {
          DAT_00093c44 = (int *)(iVar11 + 0x10);
          piVar23[4] = *(int *)(iVar7 + 0x10);
          iVar11 = *(int *)(iVar7 + 0x10);
          if (iVar11 == 0) goto LAB_00029bab;
LAB_0002996d:
          *(int **)(iVar11 + 0x14) = piVar23;
        }
        else {
          *(int *)(iVar10 + 0x14) = iVar11;
          piVar23[4] = *(int *)(iVar7 + 0x10);
          iVar11 = *(int *)(iVar7 + 0x10);
          if (iVar11 != 0) goto LAB_0002996d;
LAB_00029bab:
          DAT_00093c44 = piVar23 + 4;
        }
        piVar27[5] = iVar7;
        iVar10 = 0;
        iVar11 = 0;
        *(int **)(iVar7 + 0x10) = piVar27;
        do {
          piVar27[0x12] = -2 - piVar27[0x12];
          iVar25 = piVar27[7];
          if (((iVar25 != 0) && (*(int *)(iVar25 + 0xac) != 0)) && (iVar10 = iVar25, iVar11 == 0)) {
            iVar11 = iVar25;
          }
        } while ((piVar23 != piVar27) && (piVar27 = (int *)piVar27[4], piVar27 != (int *)0x0));
        piVar27 = (int *)0x0;
        if (iVar10 != 0) {
          iVar25 = *(int *)(iVar7 + 0x1c);
          if (iVar25 == 0) {
            piVar27 = *(int **)(iVar7 + 0x14);
            if (piVar27 != (int *)0x0) {
              do {
                if (((-1 < piVar27[0x12]) && (iVar25 = piVar27[7], iVar25 != 0)) &&
                   (*(int *)(iVar25 + 0xac) != 0)) goto LAB_000299ca;
                piVar27 = (int *)piVar27[5];
              } while (piVar27 != (int *)0x0);
              piVar27 = (int *)0x0;
            }
          }
          else {
LAB_000299ca:
            piVar27 = (int *)0x0;
            if (iVar25 != iVar10) {
              iVar7 = *(int *)(iVar11 + 0x10);
              iVar28 = *(int *)(iVar10 + 0xc);
              if (iVar7 == 0) {
                *(int *)(DAT_00093cb4 + 0x60) = iVar28;
              }
              else {
                *(int *)(iVar7 + 0xc) = iVar28;
                iVar28 = *(int *)(iVar10 + 0xc);
              }
              if (iVar28 == 0) {
                *(int *)(DAT_00093cb4 + 100) = iVar7;
              }
              else {
                *(int *)(iVar28 + 0x10) = iVar7;
              }
              iVar7 = *(int *)(iVar25 + 0xc);
              *(int *)(iVar10 + 0xc) = iVar7;
              if (iVar7 == 0) {
                *(int *)(DAT_00093cb4 + 100) = iVar10;
              }
              else {
                *(int *)(iVar7 + 0x10) = iVar10;
              }
              *(int *)(iVar11 + 0x10) = iVar25;
              piVar27 = (int *)0x0;
              *(int *)(iVar25 + 0xc) = iVar11;
            }
          }
        }
      }
      piVar24 = (int *)FUN_0001ddf0();
      iVar7 = *DAT_00093c40;
      *DAT_00093c40 = *(int *)*piVar32;
      iVar11 = *piVar24;
      *piVar32 = iVar11;
      if (iVar11 == 0) {
        DAT_000938ac = piVar32;
      }
      *piVar24 = iVar7;
      piVar23 = (int *)0x0;
      piVar26 = piVar27;
      piVar16 = DAT_00093c40;
      goto LAB_00028f8c;
    }
LAB_00029066:
    iVar7 = piVar24[2];
    uVar8 = dcgettext(0,"%F%P: %s not found for insert\n",5);
    FUN_00032ba0(uVar8,iVar7);
  }
  puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;
  for (piVar24 = DAT_000937fc; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[6]) {
    puVar15 = *(undefined4 **)(piVar24[4] + 0x60);
joined_r0x000290b4:
    if (puVar15 != (undefined4 *)0x0) {
      do {
        if (puVar15[0x15] == 0) {
          if ((*(byte *)(piVar24 + 9) & 0x10) != 0) goto code_r0x000290dc;
          iVar7 = FUN_0001f130();
          bVar37 = false;
          bVar38 = iVar7 == 0;
          if (bVar38) {
            pbVar3 = (byte *)*puVar15;
            iVar7 = 7;
            pbVar19 = pbVar3;
            pbVar33 = (byte *)"COMMON";
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar37 = *pbVar19 < *pbVar33;
              bVar38 = *pbVar19 == *pbVar33;
              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;
              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;
            } while (bVar38);
            if ((!bVar37 && !bVar38) == bVar37) {
              if (((DAT_00093c80 & 3) != 2) || (DAT_00093d20 != 0)) {
                if (DAT_000938c0 == 0) {
                  DAT_000938c0 = FUN_00023550(".bss",0,1);
                }
                FUN_000243d0(DAT_000938c0 + 8,puVar15,0,DAT_000938c0);
              }
            }
            else if (DAT_00093d9c == 1) {
              iVar7 = FUN_00023550("/DISCARD/",0,1);
              if ((*(int *)(iVar7 + 0x2c) == 0) &&
                 (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {
                uVar8 = FUN_000307b0(0,0);
                *(undefined4 *)(iVar7 + 0x2c) = uVar8;
              }
              FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);
            }
            else {
              if (DAT_00093d9c == 3) {
                uVar8 = puVar15[0x2b];
                uVar14 = dcgettext(0,"%X%P: error: unplaced orphan section `%pA\' from `%pB\'\n",5);
                FUN_00032ba0(uVar14,puVar15,uVar8);
              }
              if ((DAT_00093db8 == 0) && (iVar7 = FUN_000210f0(), iVar7 == 0)) {
                uVar8 = 0;
              }
              else {
                uVar8 = 0x17e;
              }
              iVar7 = FUN_00031560(puVar15,pbVar3,uVar8);
              if (iVar7 == 0) {
                iVar7 = FUN_00023550(pbVar3,uVar8,1);
                if ((*(int *)(iVar7 + 0x2c) == 0) &&
                   (((DAT_00093c80 & 3) == 2 || ((*(byte *)(puVar15 + 5) & 3) == 0)))) {
                  uVar8 = FUN_000307b0(0,0);
                  *(undefined4 *)(iVar7 + 0x2c) = uVar8;
                }
                FUN_000243d0(iVar7 + 8,puVar15,0,iVar7);
              }
              if (DAT_00093d9c == 2) {
                uVar8 = *(undefined4 *)(iVar7 + 0x18);
                uVar14 = puVar15[0x2b];
                uVar20 = dcgettext(0,
                                   "%P: warning: orphan section `%pA\' from `%pB\' being placed in section `%s\'\n"
                                   ,5);
                FUN_00032ba0(uVar20,puVar15,uVar14,uVar8);
              }
            }
          }
          else {
            puVar15[0x15] = puVar17;
          }
        }
        puVar15 = (undefined4 *)puVar15[3];
        if (puVar15 == (undefined4 *)0x0) break;
      } while( true );
    }
  }
  bVar21 = DAT_00093c80 & 3;
  piVar24 = DAT_0009382c;
  piVar26 = DAT_00093c40;
  iVar7 = DAT_00093cb4;
  if (bVar21 != 2) {
    (**(code **)(*(int *)(DAT_00093cb4 + 4) + 0x18c))(DAT_00093cb4,&DAT_00093c80);
    iVar7 = bfd_get_section_by_name(DAT_00093cb4,".text");
    if (iVar7 == 0) {
      bVar21 = DAT_00093c80 & 3;
      piVar24 = DAT_0009382c;
      piVar26 = DAT_00093c40;
      iVar7 = DAT_00093cb4;
    }
    else {
      bVar21 = DAT_00093c80 & 3;
      if (DAT_00093db0 == 0) {
        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) & 0xfffffff7;
        piVar24 = DAT_0009382c;
        piVar26 = DAT_00093c40;
        iVar7 = DAT_00093cb4;
      }
      else {
        *(uint *)(iVar7 + 0x14) = *(uint *)(iVar7 + 0x14) | 8;
        piVar24 = DAT_0009382c;
        piVar26 = DAT_00093c40;
        iVar7 = DAT_00093cb4;
      }
    }
  }
  for (; DAT_0009382c = piVar24, DAT_00093cb4 = iVar7, piVar26 != (int *)0x0;
      piVar26 = (int *)piVar26[4]) {
    iVar7 = piVar26[5];
    if ((((iVar7 != 0) && (piVar26[9] == 0)) && (piVar26[0xc] == 0)) &&
       ((piVar26[0xb] == 0 && (piVar26[8] == *(int *)(iVar7 + 0x20))))) {
      piVar26[9] = *(int *)(iVar7 + 0x24);
    }
    piVar24 = DAT_0009382c;
    iVar7 = DAT_00093cb4;
  }
  if ((DAT_00093d8c != 0) && (DAT_00093828 != 0)) {
    piVar26 = piVar24 + DAT_00093828;
    do {
      while (iVar11 = *piVar24, (*(byte *)(iVar11 + 0xd) & 8) == 0) {
        puVar15 = (undefined4 *)(*(undefined4 **)(iVar11 + 0x14))[0x15];
        if (((puVar15 == (undefined4 *)0x0) || (puVar15[0x2b] != iVar7)) ||
           (iVar10 = strcmp((char *)**(undefined4 **)(iVar11 + 0x14),(char *)*puVar15), iVar10 != 0)
           ) {
          *(undefined1 *)(iVar11 + 0xc) = 1;
          *(undefined4 *)(iVar11 + 0x14) = 0;
          break;
        }
        piVar24 = piVar24 + 1;
        if (piVar24 == piVar26) goto LAB_00029327;
      }
      piVar24 = piVar24 + 1;
    } while (piVar24 != piVar26);
  }
LAB_00029327:
  if (bVar21 != 2) {
    for (puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60); puVar15 != (undefined4 *)0x0;
        puVar15 = (undefined4 *)puVar15[3]) {
      pcVar12 = (char *)*puVar15;
      sVar9 = strlen(pcVar12);
      pcVar13 = (char *)xmalloc(sVar9 + 10);
      sprintf(pcVar13,".startof.%s",pcVar12);
      FUN_0001ec30();
      builtin_strncpy(pcVar13 + 1,".size",5);
      FUN_0001ec30();
      free(pcVar13);
    }
  }
  FUN_00031450();
  piVar24 = (int *)0x0;
  local_64 = (void *)xmalloc(0x28);
  local_44 = 10;
  for (puVar15 = DAT_00093c38; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)*puVar15) {
    local_6c = (int *)0x0;
    for (piVar26 = DAT_00093c40; 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, puVar15[2] != 3)))) {
            while( true ) {
              piVar24 = piVar23;
              if (piVar23 != (int *)0x0) goto LAB_000293ea;
              piVar27 = (int *)piVar27[4];
              if (piVar27 == (int *)0x0) break;
              piVar23 = (int *)piVar27[0xe];
            }
            piVar24 = (int *)0x0;
            uVar8 = dcgettext(0,"%F%P: no sections assigned to phdrs\n",5);
            FUN_00032ba0(uVar8);
          }
        }
        else {
          piVar24 = piVar23;
          piVar27 = (int *)piVar26[7];
          while (piVar27 != (int *)0x0) {
LAB_000293ea:
            iVar7 = strcmp((char *)piVar23[1],(char *)puVar15[1]);
            uVar29 = local_44;
            if (iVar7 == 0) {
              if (local_44 <= local_6c) {
                uVar29 = local_44 * 2;
                local_64 = (void *)xrealloc(local_64,local_44 << 3);
              }
              *(int *)((int)local_64 + (int)local_6c * 4) = piVar26[7];
              local_6c = (int *)((int)local_6c + 1);
              piVar23[2] = 1;
            }
            piVar23 = (int *)*piVar23;
            local_44 = uVar29;
            piVar27 = piVar23;
          }
        }
      }
    }
    uVar8 = 0;
    if (puVar15[6] != 0) {
      uVar8 = FUN_00030fd0(puVar15[6],0,0,"phdr flags");
    }
    iVar7 = puVar15[5];
    uVar40 = 0;
    if (iVar7 != 0) {
      uVar40 = FUN_00030fd0(iVar7,0,0,"phdr load address");
      iVar7 = puVar15[5];
    }
    iVar7 = bfd_record_phdr(DAT_00093cb4,puVar15[2],puVar15[6] != 0,uVar8,iVar7 != 0,uVar40,
                            puVar15[3],puVar15[4],local_6c,local_64);
    if (iVar7 == 0) {
      uVar8 = dcgettext(0,"%F%P: bfd_record_phdr failed: %E\n",5);
      FUN_00032ba0(uVar8);
    }
  }
  free(local_64);
  for (piVar24 = DAT_00093c40; piVar24 != (int *)0x0; piVar24 = (int *)piVar24[4]) {
    if ((-1 < piVar24[0x12]) && (piVar24[7] != 0)) {
      piVar26 = (int *)piVar24[0xe];
joined_r0x0002951b:
      if (piVar26 != (int *)0x0) {
        do {
          bVar37 = false;
          bVar38 = piVar26[2] == 0;
          if (bVar38) {
            pbVar3 = (byte *)piVar26[1];
            iVar7 = 5;
            pbVar19 = pbVar3;
            pbVar33 = (byte *)0x3f35d;
            do {
              if (iVar7 == 0) break;
              iVar7 = iVar7 + -1;
              bVar37 = *pbVar19 < *pbVar33;
              bVar38 = *pbVar19 == *pbVar33;
              pbVar19 = pbVar19 + (uint)bVar39 * -2 + 1;
              pbVar33 = pbVar33 + (uint)bVar39 * -2 + 1;
            } while (bVar38);
            if ((!bVar37 && !bVar38) != bVar37) goto code_r0x00029557;
          }
          piVar26 = (int *)*piVar26;
          if (piVar26 == (int *)0x0) break;
        } while( true );
      }
    }
  }
  if (((DAT_00093c82._1_1_ & 0x10) != 0) && ((DAT_00093c80 & 3) != 2)) {
    local_20[0] = (char *)0x0;
    FUN_000261d0();
    if (local_20[0] == (char *)0x0) {
      DAT_00093c82._1_1_ = DAT_00093c82._1_1_ & 0xef;
    }
  }
  FUN_000269b0(0,1 < DAT_00093c98);
  FUN_00031430();
  iVar7 = DAT_00093cb4;
  uVar29 = DAT_0009386c;
  if (DAT_00093828 != 0) {
    piVar24 = DAT_0009382c + DAT_00093828;
    puVar17 = PTR__bfd_std_section_00092fb4 + 0x180;
    piVar26 = DAT_0009382c;
    do {
      while (iVar11 = *piVar26, (*(ushort *)(iVar11 + 0xc) & 0x8ff) == 3) {
        pcVar12 = *(char **)(iVar11 + 4);
        local_5c._0_1_ = (byte)uVar29;
        if (*pcVar12 != '.') {
          cVar1 = *(char *)(*(int *)(iVar7 + 4) + 0x18);
          iVar10 = *(int *)(*(int *)(iVar11 + 0x14) + 0x54);
          *(int *)(iVar11 + 0x14) = iVar10;
          if (pcVar12[(cVar1 != '\0') + 4] == 'o') {
            uVar34 = *(uint *)(iVar10 + 0x30) >> ((byte)local_5c & 0x1f);
            uVar30 = *(uint *)(iVar10 + 0x2c) >> ((byte)local_5c & 0x1f) |
                     *(uint *)(iVar10 + 0x30) << 0x20 - ((byte)local_5c & 0x1f);
            uVar35 = uVar34;
            if ((uVar29 & 0x20) != 0) {
              uVar35 = 0;
              uVar30 = uVar34;
            }
            *(uint *)(iVar11 + 0x18) = uVar30;
            *(uint *)(iVar11 + 0x1c) = uVar35;
          }
          break;
        }
        if (pcVar12[2] != 'i') break;
        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x30);
        uVar34 = uVar30 >> ((byte)local_5c & 0x1f);
        uVar30 = *(uint *)(*(int *)(iVar11 + 0x14) + 0x2c) >> ((byte)local_5c & 0x1f) |
                 uVar30 << 0x20 - ((byte)local_5c & 0x1f);
        uVar35 = uVar34;
        if ((uVar29 & 0x20) != 0) {
          uVar35 = 0;
          uVar30 = uVar34;
        }
        piVar26 = piVar26 + 1;
        *(uint *)(iVar11 + 0x18) = uVar30;
        *(uint *)(iVar11 + 0x1c) = uVar35;
        *(undefined **)(iVar11 + 0x14) = puVar17;
        if (piVar24 == piVar26) goto LAB_000296b8;
      }
      piVar26 = piVar26 + 1;
    } while (piVar24 != piVar26);
  }
LAB_000296b8:
  FUN_00025190(4);
  FUN_00031490();
  FUN_00031320();
  puVar15 = DAT_0009383c;
  if (DAT_00093d38 != '\0') {
    iVar7 = bfd_arch_bits_per_address(DAT_00093cb4);
    uVar35 = iVar7 - 1U >> 5 & 1;
    bVar39 = (byte)(iVar7 - 1U);
    uVar29 = (uVar35 ^ 1) << (bVar39 & 0x1f);
    iVar7 = uVar29 * 2;
    uVar30 = iVar7 - 1;
    puVar15 = *(undefined4 **)(DAT_00093cb4 + 0x60);
    uVar29 = (((uVar35 << (bVar39 & 0x1f)) << 1 | uVar29 >> 0x1f) - 1) + (uint)(iVar7 != 0);
    if (puVar15 != (undefined4 *)0x0) {
      do {
        if ((*(byte *)(puVar15 + 5) & 1) != 0) {
          uVar35 = puVar15[7];
          uVar34 = puVar15[0xb];
          uVar31 = uVar30 & uVar35 + uVar34;
          uVar36 = uVar29 & puVar15[8] + puVar15[0xc] + (uint)CARRY4(uVar35,uVar34);
          if ((uVar36 == 0 && uVar31 == 0) ||
             (uVar18 = uVar29 & puVar15[8],
             uVar18 <= uVar36 && (uint)(uVar31 < (uVar30 & uVar35)) <= uVar36 - uVar18)) {
            uVar35 = puVar15[9];
            uVar31 = uVar30 & uVar34 + uVar35;
            uVar34 = puVar15[0xc] + puVar15[10] + (uint)CARRY4(uVar34,uVar35) & uVar29;
            if ((uVar34 == 0 && uVar31 == 0) ||
               (uVar36 = puVar15[10] & uVar29,
               uVar36 <= uVar34 && (uint)(uVar31 < (uVar35 & uVar30)) <= uVar34 - uVar36))
            goto LAB_0002a1a0;
            uVar8 = *puVar15;
            pcVar12 = "%X%P: section %s LMA wraps around address space\n";
          }
          else {
            uVar8 = *puVar15;
            pcVar12 = "%X%P: section %s VMA wraps around address space\n";
          }
          uVar14 = dcgettext(0,pcVar12,5);
          FUN_00032ba0(uVar14,uVar8);
        }
LAB_0002a1a0:
        puVar15 = (undefined4 *)puVar15[3];
      } while (puVar15 != (undefined4 *)0x0);
    }
    puVar15 = DAT_0009383c;
    if (1 < *(uint *)(DAT_00093cb4 + 0x68)) {
      piVar24 = (int *)xmalloc(*(uint *)(DAT_00093cb4 + 0x68) << 3);
      uVar29 = 0;
      iVar7 = *(int *)(DAT_00093cb4 + 0x60);
      if (iVar7 != 0) {
        do {
          if ((((*(uint *)(iVar7 + 0x14) & 1) != 0) && ((*(uint *)(iVar7 + 0x14) & 0x402) != 0x400))
             && (*(int *)(iVar7 + 0x30) != 0 || *(int *)(iVar7 + 0x2c) != 0)) {
            iVar11 = uVar29 * 2;
            uVar29 = uVar29 + 1;
            piVar24[iVar11] = iVar7;
            (piVar24 + iVar11)[1] = 0;
          }
          iVar7 = *(int *)(iVar7 + 0xc);
        } while (iVar7 != 0);
        if (1 < uVar29) {
          qsort(piVar24,uVar29,8,FUN_0001def0);
          local_4c = (undefined4 *)0x0;
          local_48 = 0;
          local_5c = 0;
          local_58 = 0;
          piVar26 = piVar24;
          puVar15 = (undefined4 *)0x0;
          do {
            while (puVar22 = (undefined4 *)*piVar26, puVar6 = puVar15, uVar35 = local_5c,
                  uVar34 = local_58, puVar4 = local_4c, uVar30 = local_48,
                  (*(byte *)(puVar22 + 5) & 2) != 0) {
              puVar4 = (undefined4 *)puVar22[9];
              uVar30 = puVar22[10];
              bVar39 = (byte)DAT_0009386c & 0x1f;
              uVar35 = (uint)puVar22[0xc] >> ((byte)DAT_0009386c & 0x1f);
              uVar31 = uVar35;
              uVar34 = (uint)puVar22[0xb] >> bVar39 | puVar22[0xc] << 0x20 - bVar39;
              if ((DAT_0009386c & 0x20) != 0) {
                uVar31 = 0;
                uVar34 = uVar35;
              }
              uVar35 = uVar34 + ((int)puVar4 - 1U);
              uVar34 = uVar31 + (uVar30 - 1) + (uint)(puVar4 != (undefined4 *)0x0) +
                       (uint)CARRY4(uVar34,(int)puVar4 - 1U);
              puVar6 = puVar22;
              if (puVar15 == (undefined4 *)0x0) break;
              if ((uVar30 <= local_58 && (uint)(local_5c < puVar4) <= local_58 - uVar30) ||
                 (local_58 < local_48 || local_58 - local_48 < (uint)(local_5c < local_4c))) {
                uVar8 = *puVar22;
                uVar14 = *puVar15;
                uVar20 = dcgettext(0,
                                   "%X%P: section %s LMA [%V,%V] overlaps section %s LMA [%V,%V]\n",
                                   5);
                FUN_00032ba0(uVar20,uVar8,puVar4,uVar30,uVar35,uVar34,uVar14,local_4c,local_48,
                             local_5c,local_58);
                piVar26[1] = 1;
                break;
              }
              piVar26 = piVar26 + 2;
              puVar15 = puVar22;
              local_5c = uVar35;
              local_58 = uVar34;
              local_4c = puVar4;
              local_48 = uVar30;
              if (piVar24 + uVar29 * 2 == piVar26) goto LAB_0002a3c8;
            }
            local_48 = uVar30;
            local_4c = puVar4;
            local_58 = uVar34;
            local_5c = uVar35;
            puVar15 = puVar6;
            piVar26 = piVar26 + 2;
          } while (piVar24 + uVar29 * 2 != piVar26);
LAB_0002a3c8:
          qsort(piVar24,uVar29,8,FUN_0001df40);
          puVar15 = (undefined4 *)*piVar24;
          uVar36 = 1;
          uVar30 = puVar15[8];
          uVar35 = puVar15[7];
          uVar34 = uVar30;
          uVar31 = uVar35;
          do {
            uVar18 = *(uint *)(piVar24[uVar36 * 2] + 0x1c);
            uVar5 = *(uint *)(piVar24[uVar36 * 2] + 0x20);
            if (uVar34 == uVar5 && uVar31 == uVar18) goto LAB_0002a9b9;
            uVar36 = uVar36 + 1;
            uVar34 = uVar5;
            uVar31 = uVar18;
          } while (uVar36 != uVar29);
          bVar39 = (byte)DAT_0009386c & 0x1f;
          uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);
          uVar31 = uVar36;
          uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;
          if ((DAT_0009386c & 0x20) != 0) {
            uVar31 = 0;
            uVar34 = uVar36;
          }
          local_6c = (int *)0x0;
          uVar36 = uVar34 + (uVar35 - 1);
          uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);
          while (local_4c = puVar15, local_50 = uVar30, local_54 = uVar35, local_58 = uVar34,
                local_5c = uVar36, local_6c = (int *)((int)local_6c + 1), local_6c != (int *)uVar29)
          {
            puVar15 = (undefined4 *)piVar24[(int)local_6c * 2];
            uVar35 = puVar15[7];
            uVar30 = puVar15[8];
            bVar39 = (byte)DAT_0009386c & 0x1f;
            uVar36 = (uint)puVar15[0xc] >> ((byte)DAT_0009386c & 0x1f);
            uVar31 = uVar36;
            uVar34 = (uint)puVar15[0xb] >> bVar39 | puVar15[0xc] << 0x20 - bVar39;
            if ((DAT_0009386c & 0x20) != 0) {
              uVar31 = 0;
              uVar34 = uVar36;
            }
            uVar36 = uVar34 + (uVar35 - 1);
            uVar34 = uVar31 + (uVar30 - 1) + (uint)(uVar35 != 0) + (uint)CARRY4(uVar34,uVar35 - 1);
            if ((piVar24[(int)local_6c * 2 + 1] == 0) &&
               ((uVar30 <= local_58 && (uint)(local_5c < uVar35) <= local_58 - uVar30 ||
                (local_58 < local_50 || local_58 - local_50 < (uint)(local_5c < local_54))))) {
              uVar8 = *puVar15;
              uVar14 = *local_4c;
              uVar20 = dcgettext(0,"%X%P: section %s VMA [%V,%V] overlaps section %s VMA [%V,%V]\n",
                                 5);
              FUN_00032ba0(uVar20,uVar8,uVar35,uVar30,uVar36,uVar34,uVar14,local_54,local_50,
                           local_5c,local_58);
            }
          }
LAB_0002a9b9:
          free(piVar24);
          for (puVar22 = DAT_0009384c; puVar15 = DAT_0009383c, puVar22 != (undefined4 *)0x0;
              puVar22 = (undefined4 *)puVar22[2]) {
            if (puVar22[0xe] != 0) {
              uVar8 = *puVar22;
              iVar7 = puVar22[9] - (puVar22[6] + puVar22[4]);
              uVar14 = dcngettext(0,"%X%P: region `%s\' overflowed by %lu byte\n",
                                  "%X%P: region `%s\' overflowed by %lu bytes\n",iVar7,5);
              FUN_00032ba0(uVar14,uVar8,iVar7);
            }
          }
          goto joined_r0x000296eb;
        }
      }
      free(piVar24);
      puVar15 = DAT_0009383c;
    }
  }
joined_r0x000296eb:
  for (; puVar15 != (undefined4 *)0x0; puVar15 = (undefined4 *)puVar15[1]) {
    iVar7 = bfd_link_hash_lookup(DAT_00093ca0,*puVar15,0,0,1);
    if ((iVar7 == 0) || (1 < (byte)(*(char *)(iVar7 + 0xc) - 3U))) {
      uVar8 = *puVar15;
      uVar14 = dcgettext(0,"%X%P: required symbol `%s\' not defined\n",5);
      FUN_00032ba0(uVar14,uVar8);
    }
  }
  iVar7 = DAT_00093c1c;
  if (((DAT_00093c80 & 0x43) != 2) && ((DAT_00093c80 & 3) != 3)) {
    iVar7 = 1;
  }
  if (((DAT_00093c80 & 0x43) == 0x42) && (DAT_00093c1c == 0 && DAT_00093c18 == 0)) {
    uVar8 = dcgettext(0,"%F%P: gc-sections requires either an entry or an undefined symbol\n",5);
    FUN_00032ba0(uVar8);
  }
  if (DAT_000937f8 == (undefined *)0x0) {
    DAT_000937f8 = PTR_s_start_00093340;
    iVar7 = 0;
  }
  iVar11 = bfd_link_hash_lookup(DAT_00093ca0,DAT_000937f8,0,0,1);
  if ((iVar11 != 0) && ((byte)(*(char *)(iVar11 + 0xc) - 3U) < 2)) {
    iVar10 = *(int *)(iVar11 + 0x14);
    iVar25 = *(int *)(iVar10 + 0x54);
    if (iVar25 != 0) {
      uVar29 = *(uint *)(iVar10 + 0x4c) + *(uint *)(iVar11 + 0x18);
      iVar7 = bfd_set_start_address
                        (DAT_00093cb4,uVar29 + *(uint *)(iVar25 + 0x1c),
                         *(int *)(iVar10 + 0x50) + *(int *)(iVar11 + 0x1c) +
                         (uint)CARRY4(*(uint *)(iVar10 + 0x4c),*(uint *)(iVar11 + 0x18)) +
                         *(int *)(iVar25 + 0x20) + (uint)CARRY4(uVar29,*(uint *)(iVar25 + 0x1c)));
      if (iVar7 != 0) {
        return;
      }
      pcVar12 = "%F%P: %s: can\'t set start address\n";
      goto LAB_00029b59;
    }
  }
  uVar40 = bfd_scan_vma(DAT_000937f8,local_20,0);
  if (*local_20[0] != '\0') {
    iVar11 = bfd_get_section_by_name(DAT_00093cb4,PTR_s__text_00093334);
    puVar17 = DAT_000937f8;
    if (iVar11 == 0) {
      if (iVar7 == 0) {
        return;
      }
      pcVar12 = "%P: warning: cannot find entry symbol %s; not setting start address\n";
LAB_00029b59:
      puVar17 = DAT_000937f8;
      uVar8 = dcgettext(0,pcVar12,5);
      FUN_00032ba0(uVar8,puVar17);
      return;
    }
    uVar8 = *(undefined4 *)(iVar11 + 0x1c);
    uVar14 = *(undefined4 *)(iVar11 + 0x20);
    uVar40 = *(undefined8 *)(iVar11 + 0x1c);
    if (iVar7 != 0) {
      uVar20 = dcgettext(0,"%P: warning: cannot find entry symbol %s; defaulting to %V\n",5);
      FUN_00032ba0(uVar20,puVar17,uVar8,uVar14);
      uVar40 = *(undefined8 *)(iVar11 + 0x1c);
    }
  }
  iVar7 = bfd_set_start_address(DAT_00093cb4,uVar40);
  if (iVar7 != 0) {
    return;
  }
  uVar8 = dcgettext(0,"%F%P: can\'t set start address\n",5);
  FUN_00032ba0(uVar8);
  return;
LAB_00028dd0:
  uVar8 = *puVar15;
  uVar14 = dcgettext(0,"%F%P: invalid length for memory region %s\n",5);
  FUN_00032ba0(uVar14,uVar8);
  puVar15 = (undefined4 *)puVar15[2];
  goto joined_r0x00028c51;
code_r0x000290dc:
  (**(code **)(*(int *)(piVar24[4] + 4) + 0x170))(puVar15,&DAT_00093c80);
  puVar15 = (undefined4 *)puVar15[3];
  goto joined_r0x000290b4;
code_r0x00029557:
  iVar7 = piVar24[6];
  uVar8 = dcgettext(0,"%X%P: section `%s\' assigned to non-existent phdr `%s\'\n",5);
  FUN_00032ba0(uVar8,iVar7,pbVar3);
  piVar26 = (int *)*piVar26;
  goto joined_r0x0002951b;
}

